Тема занятия: Жизненный цикл программных средств: понятие, особенности
стандартизации, преимущества применения стандартов
.
Понятие жизненного цикла
Понятие жизненного цикла (ЖЦ) программных средств (ПС) появилось, когда
программистское сообщество осознало необходимость перехода от кустарных
ремесленнических методов разработки программ к технологичному промышленному их
производству. Его появление было связано с кризисом программирования, который
наметился в конце 60
-
х начале 70
-
х годов прошлого века.
Суть кризиса состояла в том, что программные проекты все чаще стали выходить
из
-
под контроля: нарушались сроки, превышались запланированные объемы
финансирования, результаты не соответствовали требуемым. Многие проекты вообще не
доводились до завершения. Кроме того, оказалось, что недостаточно разработать
программу, а надо ее еще сопровождать. Этап сопровождения часто требует больше
средств, чем разработка.
Ситуация была вызвана ростом сложности проектов. Масштабы ее нарастали.
Необходимо было принимать меры для радикального усовершенствования принципов и
методов разработки программного обеспечения (ПО) с учетом его развития и
сопровождения. Заговорили о том, что надо обратиться к опыту промышленного
проектирования и производства, где был накоплен опыт успешной разработки не менее
сложных проектов.
Методологическую основу промышленной инженерии составляет понятие
жизненного цикла изделия (продукта) как совокупности всех действий, которые надо
выполнить на протяжении всей «жизни» изделия.
Смысл ЖЦ состоит во взаимосвязанности всех этих действий. Итак, жизненный
цикл промышленного изделия:
• последовательность этапов (фаз, стадий): проектирования, изготовления образца,
организация производства, серийное производство, эксплуатация, ремонт, вывод из
эксплуатации;
• этапы проектирования состоят из технологических процессов, действий и
операций.
Организация промышленного производства с позиции ЖЦ позволяет
рассматривать все его этапы во взаимосвязи, что ведет к сокращению сроков, стоимости
и трудозатрат.
Аналогия ЖЦ ПО с техническими системами имеет более глубокие корни, чем это
может показаться на первый взгляд. Программы не подвержены физическому износу, но
в ходе их эксплуатации обнаруживаются ошибки (неисправности), требующие
исправления. Ошибки возникают также от изменения условий использования
программы. Последнее же является принципиальным свойством программного
обеспечения, иначе оно теряет свой смысл. Поэтому правомерно говорить о старении
программ, хотя не о физическом старении, а о моральном.
Необходимость внесения изменений в действующие программы как из
-
за
обнаруживаемых ошибок, так и по причине развития требований приводит по сути дела
к тому, что разработка ПО продолжается после передачи его пользователю и в течение
всего времени жизни программ. Деятельность, связанная с решением довольно
многочисленных задач такой продолжающейся разработки, получила название
сопровождения программного обеспечения.
Базовый профиль жизненного цикла программных средств
За последние несколько лет создано множество международных стандартов,
регламентирующих процессы и продукты ЖЦ ПС и баз данных (БД). Международные
стандарты (ISO) содержат результаты обобщения мирового опыта в различных сферах.
Применение этих стандартов должно служить основой для методов и систем обеспечения
ЖЦ и качества ПС, однако для конкретных проектов требуется корректировка, адаптация
или исключение некоторых положений стандартов, применительно к особенностям
отечественных технологий и характеристик этого вида продукции.
Особенности организационных структур, различия в размерах и сложности
проектов, в требованиях к системам, в применяемых методах их разработки влияют на
организацию разработки, приобретения, применения и сопровождения аппаратных и
программных средств. При создании и развитии сложных распределенных
тиражируемых ПС целесообразно гибкое формирование и применение совокупностей
базовых стандартов и нормативных документов разного уровня, выделение в них
требований и рекомендаций, необходимых для реализации заданных функций ПС и
обеспечения их высокого качества. Для унификации и регламентирования процессов ЖЦ
ПС такие совокупности стандартов должны адаптироваться и конкретизироваться
применительно к определенным классам проектов, процессов и компонентов ПС.
В связи с этим выделилось и сформировалось понятие профилей и стандартов
.
ЖЦ современных систем поддерживается рядом профилей стандартов, которые
регламентируют крупные объекты и процессы их создания: вычислительных средств,
телекоммуникации, визуализации, ПС и БД.
Профили ПС унифицируют и регламентируют часть требований, характеристик,
показателей качества объектов и процессов, формализованных на базе стандартов и
нормативных документов. Другая часть функциональных и специфических
характеристик ПС определяется заказчиками и разработчиками творчески, без учета
положений нормативных документов. В ЖЦ ПС можно выделить две группы профилей
ПС:
• профили, регламентирующие процессы ЖЦ и системы обеспечения качества
проектирования, разработки, применения, сопровождения и совершенствования ПС и их
компонентов;
• профили, регламентирующие объекты: архитектуру и структуру ПС и их
компонентов функции, интерфейсы и протоколы взаимодействия, форматы данных.
Базовый профиль ЖЦ ПС ориентирован на использование участниками проекта ПС
разработчиками и заказчиками. Адаптированные требования его стандартов должны
быть обязательными для всех специалистов проекта. Поэтому в его состав входят
наиболее общие стандарты и нормативные документы, определяющие весь ЖЦ ПС и его
качество.
При планировании и подготовке технологической поддержки создания комплекса
программ на этапе проектирования ПС уточняется его ЖЦ и основные характеристики
проекта. Это позволяет выделить и адаптировать базовые стандарты системы качества и
основные стандарты для ЖЦ программных средств. После этого следует отобрать
стандарты и нормативные документы системы качества, выделяя рекомендации,
целесообразные для использования в профилях ЖЦ данного ПС, провести их адаптацию
для применения с учетом характеристик проекта, методологии и технологии создания
комплекса программ, а также предполагаемых инструментальных средств автоматизации
его проектирования и разработки.
На этом этапе должны быть выбраны, разработаны или приобретены НД,
руководства и инструкции, дополняющие базовые стандарты ЖЦ ПС, с целью полного
определения и регламентирования набора профилей для применения специалистами,
участвующими в проекте.
В уточненном плане реализации и обеспечения ЖЦ проекта ПС должны быть
представлены ссылки на состав и содержание документов каждого профиля, выделены
компоненты, параметры и ограничения, сформированные в процессе адаптации базового
профиля ЖЦ данного ПС.
Для разработчиков и заказчиков ПС должны быть созданы руководства по
применению профилей на этапах ЖЦ. На этапе предварительного проектирования, в
частности, целесообразно формировать проект адаптированного профиля ЖЦ и системы
качества ПС.
Широкое многообразие классов и видов программ определяет формальные
трудности, связанные с методами и процедурами доказательства соответствия ПС
условиям контрактов и требованиям потребителей. По мере расширения применения и
увеличения сложности систем выделились области, в которых ошибки или
недостаточное качество программ или данных могут нанести ущерб, значительно
превышающий положительный эффект от их использования. В этих критических случаях
недопустимы аномалии и дефекты функционирования программного продукта при
любых искажениях исходных данных, сбоях и частичных отказах аппаратуры и других
нештатных
ситуациях.
Проблема
удостоверения
достигнутого
качества
функционирования сложных ПС и методов обеспечения их жизненного цикла базируется
на сертификации аттестованными проблемно ориентированными испытательными
лабораториями.
Применение сертифицированных систем качества на предприятиях
-
разработчиках
и профилей стандартов не только гарантирует высокое, устойчивое качество процессов
обеспечения ЖЦ ПС, но позволяет во многих случаях не проводить или сокращать
сертификацию конечного программного продукта. Основой сертификации должны быть
детальные и эффективные методики испытаний конкретных ПС, специально
разработанные тестовые задачи и генераторы для их формирования, а также
квалификация и авторитет испытателей. Для этого заказчики должны выбирать
подрядчиков исполнителей своих проектов, имеющих системы обеспечения качества ПС
и сертификаты, удостоверяющие реализацию и применение системы качества
предприятием
-
разработчиком.
Особенности стандартизации жизненного цикла программных средств
Программы для вычислительных машин обычно являются компонентами ЖЦ
технических систем, но по своей природе значительно отличаются от аппаратных,
технических изделий. Но их ЖЦ имеет характерные особенности, по сравнению с
другими техническими объектами. Программы и данные в системах и вычислительных
машинах являются наиболее гибкими компонентами и подвержены изменениям в
течение всего их ЖЦ.
По особенностям и свойствам ЖЦ программ их целесообразно делить на ряд
классов и категорий, из которых наиболее различающимися являются два крупных
класса малые и большие программы.
Первый класс составляют относительно небольшие программы, создаваемые
одиночками или небольшими коллективами (35 специалистов).
Эти программы:
• не предназначены для массового тиражирования и распространения в качестве
программного продукта на рынке, их оценивают качественно и интуитивно
преимущественно как "художественные произведения";
• не имеют конкретного независимого заказчика потребителя, определяющего
требования к программам и их финансирование;
• не ограничиваются заказчиком жестко допустимой стоимостью, трудоемкостью
и сроками их создания, требованиями заданного качества и документирования;
• создаются преимущественно для получения конкретных результатов
автоматизации научных исследований или для анализа относительно простых процессов
самими разработчиками программ;
• не подлежат независимому тестированию, гарантированию качества и/или
сертификации;
• создаются преимущественно без применения формализованных требований к
функциям и допустимым затратам, без индустриальных технологий и стандартов на
проектирование и разработку.
Для таких относительно несложных программ нет необходимости в
регламентировании и автоматизации их ЖЦ, в длительном применении и сопровождении
множества версий, в формализации и применении профилей стандартов и сертификации
качества программ. Их разработчики не знают и не применяют регламентирующих
нормативных документов.
Вследствие этого ЖЦ таких изделий имеет непредсказуемый характер по
структуре, содержанию, качеству и стоимости основных процессов "творчества".
Второй класс составляют крупномасштабные комплексы программ для сложных
систем управления и обработки информации, оформляемые в виде программных
продуктов с гарантированным качеством. Они отличаются следующими особенностями
и свойствами их ЖЦ:
• большая размерность, высокая трудоемкость и стоимость создания таких
комплексов программ определяют необходимость тщательного анализа экономической
эффективности всего их ЖЦ и возможной конкурентоспособности на рынке;
• от заказчика, финансирующего проект ПС и БД, разработчикам необходимо
получать квалифицированные конкретные требования к функциям и характеристикам
проекта и продукта, соответствующие выделенному финансированию и квалификации
исполнителей проекта;
• для организации и координации этой деятельности специалистов
-
разработчиков
необходимы квалифицированные менеджеры проектов;
• в проектах сложных ПС и БД с множеством различных функциональных
компонентов участвуют специалисты разной квалификации и специализации, от которых
требуется высокая ответственность за качество результатов деятельности;
• от разработчиков проектов требуются гарантии высокого качества, надежности
функционирования и безопасности применения компонентов и поставляемых
программных продуктов, в которые недопустимо прямое вмешательство заказчика и
пользователей, не предусмотренное эксплуатационной документацией разработчиков;
• необходимо применять индустриальные, регламентированные стандартами
процессы, этапы и документы, а также методы, методики и средства автоматизации,
регламентированные технологии обеспечения ЖЦ комплексов программ.
В ЖЦ сложных комплексов программ участвуют специалисты различной
квалификации и степени ответственности за результаты своей деятельности:
• заказчики определяют и несут ответственность за финансирование, требования к
функциям и качеству программного продукта и за доступные ресурсы для обеспечения
его ЖЦ;
• разработчики отвечают и гарантируют выполнение требований заказчиков в ЖЦ
программного продукта с учетом выделенных ресурсов;
• пользователи имеют право применять программный продукт и адаптировать его
к особенностям использования и внешней среды только в пределах, определенных
эксплуатационной документацией, созданной разработчиками.
Попытки пользователей применения или изменения программного продукта,
прошедшего квалификационные или сертификационные испытания и соответствующего
требованиям заказчиков, за пределами, регламентированными документацией
разработчиков, могут приводить к ликвидации гарантий и обязанностей его
обслуживания разработчиками.
Основная цель современных технологий поддержки ЖЦ ПС состоит в обеспечении
экономической, технической и социальной эффективности всего ЖЦ комплексов
программ для ЭВМ в различных проблемно
-
ориентированных областях.
В понятие современной технологии включается совокупность методов и
инструментальных средств автоматизации, а также технологические процессы,
обеспечивающие ЖЦ сложных ПС с заданными функциональными и конструктивными
характеристиками качества. Для этого рекомендуется использовать наиболее
эффективные и совершенные методы и проводить комплексную автоматизацию
обеспечения всего ЖЦ ПС.
Методическая основа технологии жизненного цикла программных средств
Методической основой технологии ЖЦ ПС, регламентирующей деятельность
специалистов, является типовой технологический процесс. Он отражается набором
этапов и операций в последовательности их выполнения и взаимосвязи, обеспечивающих
упорядоченное ведение работ на всех стадиях от инициирования проекта и подготовки
технического задания (ТЗ) до завершения испытаний или применения версии ПС.
Индустриализация технологий создания ПС базируется на стандартизации:
• процессов разработки программ,
• их структурного построения,
• интерфейсов с операционной и внешней средой.
Для этого с самого начала разработки должны определяться состав и этапы работ,
необходимые для достижения конечной цели, требуемые для их выполнения ресурсы.
Технические и управленческие проверки, анализ качества результатов промежуточных
работ и компонентов, корректности их взаимосвязей должны обеспечивать
руководителям и всем разработчикам уверенность в достижении требуемого конечного
результата проекта.
Методология обеспечения качества ПС поддержана рядом методических
документов и инструментальных средств, а также формализована группой
международных стандартов.
Оценивание достоинств технологической базы ЖЦ позволяет прогнозировать
возможное качество ПС и ориентировать заказчика при выборе для определенного
проекта разработчика и поставщика с требуемыми характеристиками. Поэтому
определение уровня технологической поддержки процессов ЖЦ, организационного и
инструментального обеспечения ПС непосредственно связано с оцениванием реальных
или возможных характеристик качества конкретного комплекса программ. В
современных автоматизированных технологиях создания и совершенствования сложных
ПС с позиции обеспечения их качества можно выделить базовые методы и средства,
позволяющие:
• создавать программные модули и функциональные компоненты
гарантированного качества;
• предотвращать дефекты проектирования за счет систем обеспечения качества,
эффективных технологий и инструментальных средств автоматизации всего ЖЦ
комплексов программ и БД;
• обнаруживать и устранять различные дефекты и ошибки проектирования,
разработки и сопровождения программ путем верификации и систематического
тестирования на всех этапах ЖЦ ПС;
• удостоверять достигнутые значения качества функционирования ПС в процессе
их испытаний и сертификации перед передачей в эксплуатацию пользователям.
Следовательно, уровень качества ПС становится предсказуемым и управляемым,
непосредственно зависящим от ресурсов, выделяемых на его достижение, а главное, от
системы качества и эффективности технологии, используемых на всех этапах ЖЦ ПС.
Преимущества применения стандартов жизненного цикла
Основными целями, упорядочивания, регламентирования процессов и применения
стандартов в ЖЦ ПС являются:
• снижение трудоемкости, длительности процессов, стоимости и улучшение других
технико
-
экономических показателей проектов программных продуктов;
• повышение качества разрабатываемых и/или применяемых компонентов и ПС в
целом при их приобретении, разработке, сопровождении и эксплуатации;
• обеспечение возможности расширять ПС по набору прикладных функций и
масштабировать комплекс программ в зависимости от изменения размерности решаемых
задач;
• обеспечение переносимости прикладных программ и данных между разными
аппаратными и операционными платформами и повторного использования программных
компонентов.
Применение стандартов ЖЦ позволяет ориентироваться на построение систем и
комплексов программ из крупных функциональных узлов, отвечающих требованиям
стандартов, применять отработанные и проверенные проектные решения. Они
определяют унифицированные интерфейсы взаимодействия компонентов таким
образом, что разработчику системы не требуется вдаваться в детали их внутреннего
устройства. Для унификации и регламентирования процессов ЖЦ ПС такие
совокупности (профили) стандартов должны адаптироваться и конкретизироваться
применительно к определенным классам проектов, процессов и компонентов ПС.
Разработка программного продукта в значительной степени может сводиться к их
интеграции и комплексированию из стандартизированных компонентов.
Методы и процессы регламентирования ЖЦ ПС обеспечивают:
• расширение и совершенствование функций систем и компонентов с сохранением
их целостности и первичных затрат;
• систематическое повышение качества функционирования комплексов программ
и БД в различной внешней среде;
•
улучшение технико
-
экономических характеристик применения систем и
программных продуктов;
• совершенствование технологий обеспечения ЖЦ сложных систем и комплексов
программ.
Для этого при создании и сопровождении сложных распределенных систем
целесообразно учитывать ряд современных концептуальных требований формирования
их ЖЦ:
• архитектура комплекса программ должна соответствовать текущим и
перспективным целям и стратегическим функциональным задачам создаваемой системы,
быть достаточно гибкой и допускать относительно простое без коренных структурных
изменений развитие и наращивание функций и ресурсов системы в соответствии с
расширением сфер и задач ее применения;
• в структуре и компонентах ПС и системы следует предусматривать обеспечение
максимально возможной сохранности инвестиций в аппаратные и программные
средства, а также в базы данных при длительном развитии, сопровождении и
модернизации системы;
• необходимо обеспечивать эффективное использование ресурсов в ЖЦ системы и
минимизировать интегральные затраты на обработку данных в типовых режимах ее
функционирования;
• должны быть обеспечены безопасность функционирования системы и надежная
защита данных от ошибок, от разрушения или потери информации, а также авторизация
пользователей, управление рабочей загрузкой, резервированием и оперативным
восстановлением функционирования системы и программного продукта;
• для обеспечения перспективы развития ЖЦ системы и комплекса программ
целесообразно предусматривать возможность интеграции вычислительных компонентов
и возможность переноса ПС и БД на различные аппаратные и операционные платформы
на основе концепции и стандартов открытых систем;
• следует обеспечить комфортное обучение и максимально упрощенный доступ
конечных пользователей к управлению и результатам функционирования системы и
программного продукта на основе современных графических средств и наглядных
пользовательских интерфейсов.
Высокие темпы роста основных ресурсов аппаратных средств и сохраняющаяся
потребность в увеличении их использования приводят к необходимости адекватного
совершенствования технологий создания развивающихся ПС и БД. Одним из важнейших
и эффективных путей решения этой проблемы является применение концепции и
совокупности стандартов открытых систем.
В процессе эксплуатации ПС у каждого пользователя могут появляться некоторые
претензии к функционированию, которые квалифицируются им как ошибки или
дефекты.
От пользователей или заказчиков могут поступать также предложения по
дополнительному внесению изменений в базовую версию для улучшения
эксплуатационных характеристик и расширения функциональных возможностей ПС.
Аналогичные предложения могут поступать от разработчиков комплекса программ.
Для решения таких задач разработаны и активно применяются в ЖЦ
стандартизированные методы, методики и средства автоматизации регламентированного
сопровождения и управления конфигурацией. Они позволяют представить отдельным
специалистам и руководителям состояние проекта и его компонентов в любой момент
времени и не допускать хаоса при коллективной модификации программ и данных.
Стратегической проблемой в жизненном цикле современных систем стало
обеспечение требуемого качества крупномасштабных ПС при реальных ограничениях на
использование ресурсов.
Структура профилей стандартов жизненного цикла программных средств
Для регламентирования ЖЦ сложных систем и комплексов программ
целесообразно выбирать и применять следующие группы основных общесистемных
стандартов, которые определяют (рисунок 1):
• процессы ЖЦ систем на основе стандартов ISO 9000 и ISO 15288;
• аппаратную и операционную среду сложных систем определенных классов;
• внешнюю и пользовательскую среду функционирования и применения систем;
• менеджмент (административное управление) системой качества.
Рисунок 1
-
Основные общесистемные стандарты ЖЦ ПС
Применение общесистемных функциональных стандартов непосредственно
поддержано группами
Достарыңызбен бөлісу: |