Главная страница Случайная лекция Мы поможем в написании ваших работ! Порталы: БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика Мы поможем в написании ваших работ! |
ПРОГРАММНАЯ ИНЖЕНЕРИЯ В ЖИЗНЕННОМ ЦИКЛЕ ПРОГРАММНЫХ СРЕДСТВ2.1 Основы жизненного цикла программных средств
Развитие технологии программирования привело к разработке методов и средств, позволяющих создавать программные продукты для разных областей применения и типов вычислительных машин. Рост доверия к программному обеспечению не только увеличил объем разработок, но и значительно повысил важность и ответственность выполняемых им функций. Отчуждение программ для эксплуатации от их первичных создателей привело к формированию понятия программного продукта. Программный продукт является результатом нового вида современного промышленного производства. Значительное внимание в курсе методологии программной инженерии уделено фрагментам и компонентам профилей стандартов ISO, целесообразным для обеспечения высокого качества и безопасности применения программных продуктов в их жизненном цикле. Жизненным цикломпрограммного продукта называют период от момента появления идеи его создания до момента завершения его поддержки фирмой-разработчиком или фирмой, выполнявшей сопровождение. Программы и данные в системах и вычислительных машинах являются наиболее гибкими компонентами программной инженерии и подвержены изменениям в течение всего их жизненного цикла. Состав процессов жизненного цикла регламентируется международным стандартом «Information Technologe – Software Life Cycle Processes» – «Информационные технологии – Процессы жизненного цикла программного обеспечения» ISO / IEC 12207 : 1995 (ISO – International Organization for Standartization : Международная организация по стандартизации, IEC – International Electrotechnical Commission : Международная комиссия по электротехнике). По стандарту процесс разработки программного продукта включает следующие действия: - подготовительная работа (выбор модели жизненного цикла, стандартов, методов и средств разработки, а также составление плана работ); - анализ требований к системе (определение функциональных возможностей, пользовательских требований, требований к надежности и безопасности, требований к внешним интерфейсам и т. д.); - проектирование архитектуры системы (определение состава необходимого оборудования, программного обеспечения и операций, выполняемых обслуживающим персоналом); - анализ требований к программному обеспечению (определение функциональных возможностей, среды функционирования компонентов, внешних интерфейсов, спецификаций надежности и безопасности, эргономических требований, требований к используемым данным, установке, приемке, пользовательской документации, эксплуатации и сопровождению); - проектирование архитектуры программного обеспечения (определение структуры программного обеспечения, документирование интерфейсов его компонентов, разработку предварительной версии пользовательской документации, требований к тестам и плана интеграции); - детальное проектирование программного обеспечения (подробное описание компонентов программного обеспечения и интерфейсов между ними, обновление пользовательской документации, разработка и документирование требований к тестам и плана тестирования компонентов программного обеспечения, обновление плана интеграции компонентов); - кодирование и тестирование программного обеспечения (разработка и документирование каждого компонента, а также совокупности тестовых процедур и данных для их тестирования, тестирование компонентов, обновление пользовательской документации, обновление плана интеграции программного обеспечения); - интеграция программного обеспечения (сборка программных компонентов в соответствии с планом интеграции и тестирование программного обеспечения на соответствие квалификационным требованиям); - квалификационное тестирование программного обеспечения (тестирование программного обеспечения в присутствии заказчика для демонстрации его соответствия требованиям и готовности к эксплуатации; при этом проверяется также готовность и полнота технической и пользовательской документации); - интеграция системы (сборка всех компонентов системы, включая программное обеспечение и оборудование); - квалификационное тестирование системы (тестирование системы на соответствие требованиям к ней и проверка оформления и полноты документации); - установка программного обеспечения (установка программного обеспечения на оборудовании заказчика и проверка его работоспособности); - приемка программного обеспечения (оценка результатов квалификационного тестирования программного обеспечения и системы в целом и документирование результатов оценки совместно с заказчиком, окончательная передача программного обеспечения заказчику) [Иванова]. Существует достаточно много моделей процессов жизненного цикла программных средств, к фундаментальным моделям по международным стандартам относятся каскадная, инкрементная, эволюционная. Каждая из фундаментальных моделей может быть использована самостоятельно или скомбинирована с другими для создания гибридной модели жизненного цикла конкретного проекта. При этом модель жизненного цикла программного средства следует выбирать так, чтобы процессы и задачи были связаны между собой, и определены их взаимосвязи с предшествующими процессами, видами деятельности и задачами. Каскадная модель (рис.2) предполагает, что переход на следующую стадию осуществляется после того, как полностью будут завершены проектные операции предыдущей стадии и получены все исходные данные для следующей стадии. При применении этой модели для создания каждого программного компонента, соответствующие работы и задачи процесса жизненного цикла обычно выполняют последовательно. Однако они могут быть частично выполнены параллельно в случаях перекрытия последовательных работ. Когда несколько компонентов разрабатывают одновременно, для них работы и задачи процесса разработки могут быть выполнены параллельно.
Рис. 2. Каскадная схема разработки программного продукта
Инкрементная модель (с промежуточным контролем) позволяет после завершения каждого этапа при необходимости вернуться на любой уровень и внести необходимые изменения (рис.3).
Рис.3. Инкрементная схема разработки программного продукта
В соответствии со спиральной моделью (рис.4) программное обеспечение создается не сразу, а итерационно с использованием метода прототипирования, базирующегося на создании прототипов. Прототипом называют действующий программный продукт, реализующий отдельные функции и внешние интерфейсы разрабатываемого программного обеспечения. На первой итерации, как правило, специфицируют, проектируют, реализуют и тестируют интерфейс пользователя. На второй – добавляют некоторый ограниченный набор функций. На последующих этапах этот набор расширяют, наращивая возможности данного продукта.
Рис. 4. Спиральная схема разработки программного продукта
Применение стандартов жизненного цикла позволяет ориентироваться специалистам на построение систем и комплексов программ из крупных функциональных узлов, отвечающих требованиям стандартов, применять отработанные и проверенные проектные решения. Они определяют унифицированные интерфейсы взаимодействия компонентов таким образом, что разработчику системы, как правило, не требуется вдаваться в детали внутреннего устройства этих компонентов. Стандарты, относящиеся к программным комплексам (функциональным частям) систем, облегчают повторное использование в новых системах готовых и апробированных программных продуктов. Для унификации и регламентирования процессов жизненного цикла программного средства такие совокупности − профили стандартов должны адаптироваться и конкретизироваться применительно к определенным классам проектов, процессов и компонентов программных средств. Таким образом, разработка программного продукта, в значительной степени, может сводиться к интеграции и комплексированию из стандартизированных компонентов.
2.2. Назначение профилей стандартов жизненного цикла в программной инженерии
При создании и сопровождении сложных, распределенных, тиражируемых ПС требуется гибкое формирование и применение гармонизированных совокупностей базовых стандартов и нормативных документов разного уровня, выделение в них требований и рекомендаций, необходимых для эффективной реализации конкретных функций систем. Для унификации и регламентирования реализации этих функций, совокупности базовых стандартов должны адаптироваться и конкретизироваться в программной инженерии применительно к определенным классам проектов, их функций, процессов и компонентов. В связи с этим выделилось и сформировалось понятие "профиля стандартов", как основного инструмента функциональной стандартизации. Профиль стандартов − это совокупность нескольких (или подмножество одного) базовых стандартов (и других нормативных документов) с четко определенными и гармонизированными подмножествами обязательных и факультативных возможностей, предназначенная для реализации заданной функции или группы функций. Функциональная характеристика (заданный набор функций) объекта стандартизации является исходной для формирования и применения профиля этого объекта или процесса. В профиле выделяются и устанавливаются допустимые факультативные возможности и значения параметров каждого базового стандарта и/или нормативного документа, входящего в профиль. Профиль не может противоречить использованным в нем базовым стандартам и нормативным документам. Он должен использовать факультативные возможности и значения параметров в пределах допустимых, выбранные из альтернативных вариантов. На базе одной и той же совокупности базовых стандартов могут формироваться и утверждаться различные профили для разных проектов и сфер применения. Эти ограничения базовых документов профиля и их гармонизация, проведенная разработчиками профиля, должны обеспечивать качество, совместимость и корректное взаимодействие компонентов системы, соответствующих профилю, в заданной области его применения [Липаев]. Профиль стандартов жизненного цикла программного средства должен определять архитектуру программного комплекса. Жизненный цикл программных средств отражается в профиле стандартов набором процессов, этапов, частных работ и операций в последовательности их выполнения и взаимосвязи, регламентирующим ведение разработки, сопровождение и эксплуатацию, от анализа и подготовки требований до завершения испытаний ряда версий программного продукта и прекращения их использования. Жизненный цикл включает описания исходной информации, способов и методов выполнения операций и работ, устанавливает требования к результатам и правилам их контроля, а также определяет содержание технологических и эксплуатационных документов. Он определяет организационную структуру коллектива специалистов, регламентирует распределение и планирование работ, а также контроль за ходом разработки. Профиль стандартов жизненного цикла системы должен учитывать её функциональную ориентацию. Он должен содержать ссылки на стандартизированные интерфейсы между комплексом программ и внешней средой, которые описываются в профилях среды системы. Каждый профиль и его параметры для применения в конкретном проекте системы необходимо поэтапно адаптировать и детализировать в соответствии с этапом проекта. Особенности организационных структур, различия в размерах и сложности проектов, в требованиях к системам и применяемым методам их разработки, необходимость преемственности с системами, находящимися в эксплуатации, влияют на организацию разработки, приобретения, применения и сопровождения программных средств. Каждый из выделенных профилей должен для последующего длительного использования пройти стадию формирования, адаптации и параметризации применительно к характеристикам стандартизируемых объектов или процессов.
2.3. Жизненный цикл профилей стандартов программных средств
Профиль стандартов конкретной системы не является статичным, он развивается и конкретизируется в процессе жизненного цикла и оформляется в составе документации системы. Разработка и применение профилей стандартов являются органической частью процессов жизненного цикла, разработки и развития систем. Целесообразно рассматривать две группы профилей систем: - функциональные профили, регламентирующие архитектуру и структуру объектов системы и ее компонентов; функции, интерфейсы и протоколы взаимодействия, форматы данных; - технологические профили, регламентирующие процессы проектирования, разработки, применения, сопровождения и развития систем и их компонентов. На этапах жизненного цикла системы выбираются и затем применяются общесистемные функциональные профили: - профиль жизненного цикла информационной системы; - профиль аппаратной и операционной среды системы; - профиль внешней и пользовательской среды функционирования ПС; - профиль обеспечения безопасности функционирования и защиты информации в системе; - профиль инструментальных средств, поддерживающих весь жизненный цикл системы. Применение функциональных профилей должны поддерживать основные, технологические профили: - жизненного цикла программных средств и баз данных; - обеспечения качества программных средств и информации баз данных; - верификации, тестирования и сертификации программных систем и баз данных; - сопровождения и управления конфигурацией программных систем и информацией баз данных; - документирования программных средств и информации баз данных. Модель профиля стандартов жизненного цикла сложных программных средств обычно формируется из 10 –12 базовых стандартов. Их количество зависит от целей, сложности и особенностей проекта, от назначения и области применения модели, а также от возможностей формализации её компонентов [Липаев].
2.4. Оценка качества программных средств
Вследствие роста сфер применения и ответственности функций, выполняемых программами, резко возросла необходимость гарантирования высокого качества программных продуктов, регламентирования и корректного формирования требований к характеристикам реальных комплексов программ и их достоверного определения. В результате специалисты в области теории и методов, определяющих качество продукции, вынуждены осваивать область развития и применения нового, специфического продукта – программных средств и систем в целом, и их качество при использовании. Методы программной инженерии поддерживают и конкретизируют технологический процесс, а также отслеживание значений качества компонентов на этапах жизненного цикла ПС. Для каждого проекта, выполняющего ответственные функции, должны разрабатываться и применяться система качества, специальные планы и программа, методология и инструментальные средства разработки и испытаний, обеспечивающие требуемые качество, надежность и безопасностьфункционирования программных продуктов. Эти методы и процессы позволяют разработчикам и заказчикам программных продуктов более корректно взаимодействовать при определении и реализации требований контрактов и технических заданий. Оценка качества программного обеспечения осуществляется на всех этапах жизненного цикла.(Стандарт ISO 9126 и ГОСТ 28195 – 89). Показатели качества программного обеспечения делят на группы: а) Показатели надежности (устойчивость функционирования, работоспособность) характеризуют способность программного средства в конкретных областях применения выполнять заданные функции в соответствии с программной документацией в условиях возникновения отклонений в среде функционирования, вызванных сбоями технических средств, ошибками во входных данных, ошибками обслуживания и другими дестабилизирующими воздействиями. б) Показатели сопровождения (структурность, простота конструкции, наглядность, повторяемость) характеризуют технологические аспекты, обеспечивающие простоту устранения ошибок в программе и программной документации, и поддержания программного средства в актуальном состоянии. в) Показатели удобства применения (легкость освоения, доступность эксплуатационных программных документов, удобство эксплуатации и обслуживания) характеризуют свойства программного средства, способствующие быстрому освоению, применению и эксплуатации программного средства с минимальными трудозатратами с учетом характера решаемых задач и требований к квалификации обслуживающего персонала. г) Показатели эффективности (уровень автоматизации, временная эффективность, ресурсоемкость) характеризуют степень удовлетворения потребности пользователя в обработке данных с учетом экономических, вычислительных и людских ресурсов. д) Показатели универсальности (гибкость, мобильность, модифицируемость) характеризуют адаптируемость программного средства к новым функциональным требованиям, возникающим вследствие изменения области применения или других условий функционирования. е) Показатели корректности (полнота реализации, согласованность, логическая корректность) характеризуют степень соответствия программного средства требованиям, установленным в техническом задании, требованиям к обработке данных и общесистемным требованиям. Выбор показателей качества для конкретного программного средства осуществляется с учетом его назначения и требований областей применения, и в зависимости от принадлежности программного средства к той или иной группе в соответствии с российским классификатором продукции (например, 5011 – операционные системы, 5012 – программные средства управления базами данных и т.д.). Выбранная номенклатура показателей качества фиксируется в техническом задании. Оценка качества программных средств проводится на фазах жизненного цикла и включает выбор показателей качества, их оценку и сопоставление значений показателей, полученных в результате сравнения с базовыми значениями. Показатели качества объединены в систему из четырех уровней. Для показателей качества на всех уровнях принимается единая шкала оценки от 0 до 1. Качество программного средства определяется путем сравнения полученных расчетных значений показателей с соответствующими базовыми значениями показателей существующего аналога или расчетного программного средства, принимаемого за эталонный образец. В качестве аналогов выбираются реально существующие программные средства того же функционального назначения, что и разрабатываемое.
Контрольные вопросы 1. Что понимается под «жизненным циклом программного продукта»? 2. Какие действия включает процесс разработки программного продукта? 3. Охарактеризуйте фундаментальные модели жизненного цикла программных средств. 4. Для чего формируются и как используются профили стандартов? 5. Назовите основные группы показателей качества программного обеспечения. По какой шкале производится их оценка?
Дата добавления: 2014-09-26; просмотров: 763; Нарушение авторских прав Мы поможем в написании ваших работ! |