Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Жизненный цикл ПС, связь с ядром знаний SWEBOK
Программная инженерия, как инженерная дисциплина, охватывает все аспекты создания ПС от начальной стадии разработки системных требований до реализации программного продукта и его использования. Под программной системой (ПС) понимается комплекс интегрированных программ и средств, которые реализуют функции предметной области в заданной среде. В комплекс могут входить: прикладные системы (зарплата, учет и др.), общесистемные компоненты (отладчик, редактор, СУБД), системы защиты и безопасности и др. Программное обеспечение - это некоторая конкретная функции системы (например, программный модуль решения одной общей задачи, ОС - функционирование программ и систем, управление данными и др.). ПО может входить в состав ПС или быть идентичным ПС. Каждая ПС на протяжении своего существования проходит определенную последовательность процессов (этапов), начиная от постановки задачи до ее воплощения в готовую программу, эксплуатации и изъятия из эксплуатации. Такая последовательность этапов называется жизненным циклом (ЖЦ) разработки ПС. На каждом этапе ЖЦ выполняется определенная совокупность процессов и/или подпроцессов, каждый из которых порождает соответствующий промежуточный продукт, используя при этом результаты предыдущего процесса и продукта. Все продукты программной инженерии представляют собой некоторые описания, а именно, тексты требований к разработке ПС, согласованные договоренности с заказчиком, архитектуру, структуру данных, тексты программ, документацию, инструкции по эксплуатации и т.п. Главные ресурсы разработки ПС в программной инженерии - это сроки, время и стоимость. Правильное управление и использование этих ресурсов при выполнении задач и действий процессов ЖЦ определяет эффективность разработки ПС. Разновидности действий и задач, представленные в процессах ЖЦ ПС, отображены в международном стандарте ISO\IEC 12207 (таблица 1) и связаны содержательно с областями знаний SWEBOK. Данный стандарт устанавливает общую структуру и содержание ЖЦ ПС, начиная от разработки концепции до утилизации системы. Структура представляет собой множество процессов, взаимосвязей между ними и определений действий и задач на процессах ЖЦ. Иными словами, ЖЦ определяет, что надо делать, а не как выполнять те или иные действия. Стандарт не обязывает использовать определенную модель ЖЦ ПО или конкретную методологию разработки ПО и не предъявляет требования к формату и содержанию создаваемых документов. Поэтому организация-пользователь этого стандарта должна для своей работы разработать стандарты предприятия, методики и процедуры, определяющие разные детали процесса разработки ПО.
Отметим, что ISO выпустил ряд руководств и процедур, дополняющих стандарт ISO\IEC 12207. Основная идея данного стандарта - разработка и сопровождение ПС я так, как этого требует инженерная дисциплина. В процессе разработки создается каркас системы (абстрактная архитектура с вы деленными объектами), для которой определены среда, виды обеспечения, исполнители и сроки. Как видно из табл. 1.1, все процессы в данном стандарте разделены на три категории: · основные процессы; · обеспечивающие (поддерживающие) процессы; · организационные процессы. Для каждого из процессов определены виды деятельности (действия - activity), задачи, совокупность результатов (выходов) видов деятельности и задач, а также некоторые специфические требования. Стандарт дает перечень работ для основных обеспечивающих и организационных процессов. Пункты 1.1.1, 1.1.2, а также категории 2 и 3 процессов определяют виды деятельности, цели и задачи которых оговорены в стандарте, но не определяют форму их представления. К основным процессам относятся: · процесс приобретения инициирует ЖЦ ПС и определяет действия организации покупателя (или заказчика), которая приобретает автоматизированную систему, программный продукт или сервис. Этот процесс включает следующие виды деятельности: инициирование и подготовка запроса, оформление контракта и его актуализация; мониторинг поставщиков, приемка и завершение; · процесс поставки определяет действия поставщика, по снабжению покупателя программным продуктом или сервисом. Данный процесс включает в себя следующие виды деятельности: подготовку предложений (ответов на запросы); оформление контракта; планирование, выполнение и контроль поставляемого продукта; анализ и оценку продукта; поставку и завершение работ по поставке. Процесс поставки начинается тогда, когда устанавливаются договорные отношения на поставку ПС между заказчиком и поставщиком. В зависимости от условий договора с заказчиком процесс поставки может включать процесс разработки ПО, процесс эксплуатации и обеспечения служб эксплуатации ПО или сопровождения для исправления и улучшения ПС; · процесс разработки определяет действия предприятия разработчика программного продукта: анализ требований к системе; проектирование архитектуры системы; детальное проектирование компонентов ПС; кодирование и тестирование ПС; интеграцию системы; квалификационное тестирование; установку ПС; обеспечение приемки ПС; · процесс эксплуатации определяет действия предприятия оператора, которое обеспечивает обслуживание системы в процессе ее эксплуатации пользователями (консультирование пользователей, изучение потребностей оператора с точки зрения удовлетворения их системой и т.д.). Этот процесс определяет задачи и действия по функциональному тестированию, проверочной эксплуатацией системы; предоставление пользователю необходимых инструкций и документации по запуску и эксплуатации ПО; · процесс сопровождения определяет действия организации, выполняющей сопровождение программного продукта (управление модификациями, поддержку текущего состояния и функциональной пригодности, инсталляцию и удаление программного продукта на вычислительной системе пользователя). Данный процесс включает задачи и действия по анализу проблем сопровождения и модификации; разработке планов и реализации модификации системы; анализу результатов сопровождения после изменений системы; миграции (перемещению) ПС в другую среду или ее удалению из употребления. К обеспечивающим процессам создания ПС относятся: документирование, управление версиями, верификация и валидация, просмотры, аудиты, оценивание продукта и др. Процессы управления версиями соответствуют управлению конфигурацией системы, которая так же, как и продукты процессов должна проверяться на правильность реализации целей проекта и соответствия требованиям заказчика. Задачи проверки рекомендуется выполнять специальным контролерам, обладающим знаниями методов и процессов проектирования ПС. К организационным процессам отнесены: управление проектом (менеджмент разработки), качеством и рисками и др. Эти процессы выполняются специальными службами, выполняющими планирование работ на проекте, контроль процессов, определение метрик для измерения продуктов, проверку показателей качества, соблюдение стандартных положений и др. Процессы, определенные в стандарте ISO/IEC 12207, охватывают все возможные задачи и действия по проектированию и разработке ПС. Пользователь стандарта может выбрать из них соответствующее подмножество для достижения конкретной цели, стоящей перед данным проектом. Процессы, действия и задачи приведены в стандарте в наиболее общей естественной последовательности. В зависимости от целей конкретного проекта процессы, действия и задачи выбираются, упорядочиваются и применяются итерационно или рекурсивно. Главный разработчик и менеджер должны определить задачи проекта, выбрать под их реализацию модель ЖЦ ПО, которая позволит учитывать ресурсы, стоимость и временные характеристики программного проекта. Данный стандарт определяет содержание деятельности в сфере технологии разработки ПС, а знания, которые необходимы исполнителям для выполнения всех видов деятельности по проектированию и реализации поставленных задач перед проектом, определяют методы и средства областей ядра знаний SWEBOK, которые распределяются по отдельным процессам и подпроцессам при формировании модели ЖЦ для конкретного проекта. Как уже отмечалось, между стандартом ISO\IEC 12207 и ядром знаний SWEBOK существует связь и взаимовлияние друг на друга, тем более что в разработке обоих документов примерно в одно время принимали участие высококвалифицированные специалисты в области программирования и информатики. Общие идеи и методы программирования, сложившиеся в 90-х годах прошлого столетия, проникли в оба направления и оказали влияние на их структуру и содержание. Программисты-профессионалы систематизировали накопившиеся знания и создали 10 разделов, которые близки процессам ЖЦ по целям, задачам и видам деятельности. В ядре знаний SWEBOK они изложены как фундаментальные знания и инженерные методы управления разработкой ПО, а в стандарте как общие положения, структура и регламентированные процессы проектирования как рекомендации по разработке проекта, начиная от процесса постановки требований до эксплуатации ПО. Следует отметить, что структура ядра знаний SWEBOK не лишена недостатков. Так, между областями знаний в этом ядре имеются пересечения, а некоторые важные направления в области программирования вообще не отражены в нем. Например, методы доказательства правильности программ, эволюция программ, распределенные и неоднородные среды, взаимодействие систем, некоторые методы программирования (сервисные, аспектные, агентные и др.), CASE-системы и др. Технологические процессы в стандарте структурированы системно. Они не устанавливают связь с существующими методами и средствами программной инженерии, что создает возможность выбирать подходящие процессы стандарта и сопоставлять им привычные методы (объектные, компонентные, сервисные и др.), т.е. те, которые уже использовались коллективом разработчиков и для которых есть инструменты поддержки. Это и отражает идею совершенствования процесса инженерии ПО. Процессы стандарта отвечают на вопрос, какие действия и задачи процессов ЖЦ надо выбрать, чтобы построить конкретную ПС. Ядро знаний SWEBOK отвечает на вопрос, какими методами, средствами и инструментами надо выполнять регламентированные действия и задачи процессов ЖЦ, чтобы построить ПС. Программная инженерия сформировалась как инженерная дисциплина, которая базируются на теоретических и прикладных методах и средствах разработки ПС и стандартах (ISO/IEC 12207, 15404, ISO 9126 и др.), содержащих рекомендации, правила и методики управления разработкой ПС. Эти два базиса объединяет инженерия оценивания результатов на процессах ЖЦ, управление качеством ПС, оценка затраченных ресурсов на создание и учет стоимости работ участников разработки. Инженерия программирования делает акцент на принципы, методы и подходы к управлению проектом, конфигурацией и качеством ПС. Стандарты регламентируют основные процессы, определяющие порядок проведения работ по реализации ПС, рекомендуют процессы организационной деятельности по управлению, планированию и оцениванию работ, выполняемых при проектировании и разработке ПС. Ядро знаний SWEBOK, а также многочисленные монографии и статьи по методам и средствам программной инженерии предоставляют всю необходимую информацию для выбора наиболее подходящего метода, средства, инструмента. Вместе с тем стандарт - это руководство к построению процессов в сочетании с методами для реализации конкретного программного проекта на стандартизованной инженерной основе. Естественно, что в небольших программных проектах всегда будет место творческим и неформальным подходам, вносимым отдельными профессионалами, при создании разного рода уникальных продуктов, процесс разработки которых не всегда вкладывается в общее стандартное русло. Таким образом, программная инженерия базируется на ядре SWEBOK и стандартах ЖЦ. Инженерия производства ПС основывается на стандартных организационных процессах - планирования, управления и сопровождения. Цель планирования - составление планов и графиков работ по реализации проекта и распределение работ между разными категориями специалистов с учетом их квалификации и уровня знаний проблематики программной инженерии. Второй процесс обеспечивает привнесение методов управления в процесс выполнения работ по программированию, а именно, управление временем, стоимостью и сроками. Третий процесс - это выполнения проекта, обнаружение и устранение найденных недостатков и замена или внесения новых функций в систему.
Контрольные вопросы и задания 1. Назовите цели и задачи программной инженерии. 2. Назовите области знаний SWEBOK инженерии разработки ПО. 3. Приведите базовые понятия области знаний "Тестирование ПО". 4. Определите цели и задачи области знаний "Управление проектом". 5. Определите цели и задачи области знаний "Инженерия качества ПО". 6. Дайте определение ЖЦ разработки ПО. 7. Назовите три основные группы процессов жизненного цикла и перечислите процессы каждой из групп. 8. Назовите организационные процессы ЖЦ и перечислите их. 9. Дайте характеристику процесса управления качеством ЖЦ. 10. Какой международный стандарт определяет перечень и содержание процессов ЖЦ ПО? 11. Все ли процессы, указанные в стандарте, должны быть выполнены при каждой разработке ПО?
|
Последнее изменение этой страницы: 2019-03-31; Просмотров: 269; Нарушение авторского права страницы