Что такое модель жизненного цикла программного обеспечения

Обновлено: 30.06.2024

Одним из базовых понятий методологии проектирования ПО является понятие жизненного цикла ее программного обеспечения (ЖЦ ПО). ЖЦ ПО — это непрерывный процесс, который начинается с момента принятия решения о необходимости его создания и заканчивается в момент его полного изъятия из эксплуатации.

Основным нормативным документом, регламентирующим ЖЦ ПО, является международный стандарт ISO/IEC 12207 (ISO — International Organization of Standardization — Международная организация по стандартизации, IEC — International Electrotechnical Commission — Международная комиссия по электротехнике). Он определяет структуру ЖЦ, содержащую процессы, действия и задачи, которые должны быть выполнены во время создания ПО. В данном стандарте ПО (программный продукт) определяется как набор компьютерных программ, процедур и, возможно, связанной с ним документации и данных. Процесс определяется как совокупность взаимосвязанных действий, преобразующих некоторые входные данные в выходные. Каждый процесс характеризуется определенными задачами и методами их решения, исходными данными, полученными от других процессов, и результатами.

Структура ЖЦ ПО по стандарту ISO/IEC 12207 базируется на трех группах процессов:

· основные процессы ЖЦ ПО (приобретение, поставка, разработка, эксплуатация, сопровождение);

· вспомогательные процессы, обеспечивающие выполнение основных процессов (документирование, управление конфигурацией, обеспечение качества, верификация, аттестация, оценка, аудит, решение проблем);

· организационные процессы (управление проектами, создание инфраструктуры проекта, определение, оценка и улучшение самого ЖЦ, обучение).

Модели жизненного цикла ПО

Модель жизненного цикла — структура, определяющая последовательность выполнения и взаимосвязи стадий и этапов, выполняемых на протяжении ЖЦ. Модель ЖЦ зависит от специфики ПО и специфики условий, в которых последняя создается и функционирует. Основные модели ЖЦ следующие.

1. Каскадная модель (до 70-х годов XX в) определяет последовательный переход на следующий этап после завершения предыдущего.

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

Достоинство: хорошие показатели по срокам разработки и надежности при решении отдельных задач.

Недостаток: неприменимость к большим и сложным проектам из-за изменчивости требований к системе в течение длительного проектирования.

Модель предусматривает обобщение полученных проектных решений отдельных задач в общесистемные решения. При этом возникает потребность в пересмотре ранее сформулированных требований.

Достоинство: возможность оперативно вносить коррективы в проект.

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

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

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




Достоинства:

1. сокращение число итераций и, следовательно, число ошибок и несоответствий, которые необходимо исправлять;

2. сокращение сроков проектирования;

3. упрощение создания проектной документации.

Недостаток: высокие требования к качеству общесистемного репозитория (общей базы проектных данных).

Спиральная модель лежит в основе технологии быстрой разработки приложений или RAD-технологии (rapid application development), которая предполагает активное участие конечных пользователей будущей системы в процессе ее создания. Основные стадии информационного инжиниринга следующие:

· Анализ и планирование информационной стратегии. Пользователи вместе со специалистами-разработчиками участвуют в идентификации проблемной области.

· Проектирование. Пользователи под руководством разработчиков принимают участие в техническом проектировании.

· Конструирование. Разработчики проектируют рабочую версию ПО с использованием языков 4-го поколения;

· Внедрение. Разработчики обучают пользователей работе в среде новой ПО.

Жизненный цикл разработки ПО (англ. SDLC – Software development lifecycle) – это серия из шести фаз, через которые проходит любая программная система.

Абсолютно любое ПО проходит через 6 основных шагов, начиная от простой идеи и заканчивая использованием её конечным пользователем.

Но как это выглядит изнутри? С какими сложностями сталкивается команда разработчиков и как их решает на каждой фазе Жизненного Цикла ПО? Об этом расскажет Павел Гапонов, Project Manager компании-разработчика SolveIt.

Типичный жизненный цикл разработки состоит из следующих фаз:

Это, пожалуй самый ответственный и важный из всех шагов к созданию успешной программной системы. Вся собранная информация используется для планирования базового проектного подхода.

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

Проблема: Не соответствующие ожидания и часто изменяющиеся требования: заказчик и команда не понимают, какую реально пользу принесёт продукт.

Решение: Определить скоп работ, согласовать четкий, краткий документ с требованиями, создать прототипы (макеты) для подтверждения и уточнения окончательных требований.

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

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

Проблема: Большой многостраничный список требований

Решение: Выяснить высокоуровневые требования и, в ходе разработки и коммуникации с заказчиком, дописывать ТЗ. То есть разработка идет параллельно с Техническим заданием, а в процессе корректируется план.

В SolveIt мы всегда стараемся быть гибкими и подстраиваться под клиента. Работающий продукт важнее исчерпывающей документации.

SRS это ориентир для разработчиков, чтобы предложить лучшую архитектуру для продукта. Обычно предлагается несколько подходов к проектированию архитектуры продукта. Все предложенные подходы документируются в спецификации DDS (Design Document Specification) и выбирается наилучший подход к проектированию. Данный подход очень четко определяет все архитектурные модули продукта, а также его связь с внешними и сторонними модулями.

Проблема: Выбрали неправильную архитектуру.

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

Здесь начинается разработка и сборка продукта. Весь программный код, новые модули и фичи разрабатываются на основании DDS. Чем лучше написана эта документация, тем быстрее будет идти имплементация. На этом этапе подключается команда разработчиков. Написанный код должен покрываться Unit-тестами, а взаимодействие новых фич с другими модулями тестироваться с помощью интеграционных тестов. Эти активности выполняются именно командой разработчиков, а не QA специалистами.

Проблема №1: Слабая коммуникация между командой

Разработчик не интересуется прогрессом проекта, проблемами коллег.

Решение: Daily meetings, 100% вовлеченность, Скрам доска (интерактивность).

Проблема №2: Невыполнимые сроки

Заказчик хочет, чтобы его продукт был готов в ближайшее время. Менеджер проекта пытается объяснить клиенту к чему приведет такая спешка, но этого не достаточно. Клиент ставит невыполнимые дедлайны и не слушает возражения менеджера проекта. В результате, команда разработчиков сдается и пробует закрыть задачи в слишком короткие сроки. Как следствие – критические баги из-за спешки: команда не успевает, качество продукта снижается, клиент не доволен и решает, что виновата команда.

Решение: Менеджер проекта должен стоять на своём и аргументировать дедлайны. Клиент должен понять, что если команда разработчиков будет торопиться, то не реализует часть функционала. Если всё же такой срок реализации критичен для клиента, мы стараемся выявить какие задачи находятся у заказчика в приоритете.

Проблема №3: Добавление не оговоренных фич

99% заказчиков ошибаются именно в этом месте . В ходе разработки клиент отклоняется от оговоренного тз и хочет добавить ещё фич в продукт. В результате вместе с ростом скопа фич, увеличиваются сроки и бюджет на разработку, деньги заканчиваются, а готово только 50% продукта.

Решение: Менеджер проекта должен объяснить клиенту, к чему приведет добавление новых фич в проект, отстаивать свою позицию и держаться SRS. Поэтому так важна вторая фаза Жизненного цикла разработки ПО.

Именно тестирование, в основном, затрагивает все этапы жизненного цикла. Дефекты продукта регистрируются, отслеживаются, исправляются и повторно тестируются. Это происходит до тех пор, пока продукт не достигнет стандартов качества, которые прописаны в SRS. На данном этапе в процесс разработки подключается команда мануальных тестировщиков или автоматизаторы.

Решение: Проводить тестирование параллельно задачам, сразу же по их завершению.

Как только продукт протестирован, он выходит в релиз. Иногда внедрение происходит поэтапно, в соответствии с бизнес-стратегией. Продукт сначала может быть выпущен в ограниченном сегменте и протестирован в реальной бизнес-среде, это UAT-тестирование (User Acceptance Testing). Затем, основываясь на отзывах, продукт может быть выпущен как есть, или с предлагаемыми улучшениями. После того, как продукт выпущен на рынок его обслуживание выполняется для существующей клиентской базы, и на этом этапе подключаются Support-команды.

Проблема №1: Отсутствие обратной связи, реальных отзывов потенциальных пользователей продукта.

Решение: Не ждать конца разработки, а как можно скорее запускать продукт, чтобы получить отзывы от реальных пользователей и на основе их предпочтений приоритезировать дальнейший функционал.

Проблема №2: Слабая инфраструктура проекта на стороне клиента.

Часть заказчиков предпочитают размещать сервера приложений не на Azure, AWS, Google и т.д, а в своей внутренней сети. Команда не может гарантировать стабильную работу, из-за сбоев, которые происходят на стороне клиента.

Решение: Предупредить клиента, о возможных проблемах, предложить решения для их устранения.

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

Если вам нужен качественный продукт, свяжитесь с нами и мы сделаем оценку вашего проекта!


СТАНДАРТЫ И МОДЕЛИ ЖИЗНЕННОГО ЦИКЛА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Информационные технологии с каждым годом накапливали опыт в сфере информационных технологий, результаты которых отражаются в отраслевых и международных стандартах. Программное обеспечение (далее ПО) с помощью экспертов в информационной инженерии реализовали ряд успешных проектов в коммерческой и военной индустрии различных стран, таких как США, ЕС и другие развитые страны. Эти стандарты проходили ряд критериев для программного обеспечения в столь передовом направление, как Министерство обороны США, где всегда требуется жесткий контроль и эффективность выполнения поставленных задач, с чем эти стандарты успешно справляются. Сущность стандартов отражается в построение сложных программных систем, которые реализуются в различных проектах сфер экономики и ИТ-направлений.

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

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

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

Информационные системы должны удовлетворять интересам бизнеса, а также быть легко модифицируемыми и недорогими. Плохо спроектированная система, в конечном счете, требует больших затрат и времени для ее содержания и обновления. [1, с. 65]

Проблемы определения и анализа требований в наиболее общем виде понятие сводится к следующим двум аспектам, фиксируемым для выполнения конструкторских работ:

- средства программного обеспечения, в которых нуждается пользователь для решения своих проблем или достижения определенных целей;

- характеристики программного обеспечения, которым должна обладать система в целом или ее компонент, чтобы удовлетворять соглашениям, спецификациям, стандартам или другой формально установленной документации.

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

В России было взято направление на развитие и внедрение в отечественную хозяйственную деятельность – концепцию развития международных стандартов программного обеспечения (рис 1)

Рисунок 1. Разработка национальных стандартов в России. [3]

Одним из базовых понятий методологии проектирования ИС является понятие жизненного цикла ее программного обеспечения (ЖЦ ПО).

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

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

Среди наиболее известных стандартов можно выделить следующие:

ГОСТ 34.601-90 - распространяется на автоматизированные системы и устанавливает стадии и этапы их создания. Кроме того, в стандарте содержится описание содержания работ на каждом этапе. Стадии и этапы работы, закрепленные в стандарте, в большей степени соответствуют каскадной модели жизненного цикла.

ISO/IEC 12207:1995 - стандарт на процессы и организацию жизненного цикла. Распространяется на все виды заказного ПО. Стандарт не содержит описания фаз, стадий и этапов.

CustomDevelopmentMethod(методика Oracle) по разработке прикладных информационных систем - технологический материал, детализированный до уровня заготовок проектных документов, рассчитанных на использование в проектах с применением Oracle. Применяется CDM для классической модели ЖЦ (предусмотрены все работы/задачи и этапы), а также для технологий "быстрой разработки" (Fast Track) или "облегченного подхода", рекомендуемых в случае малых проектов.

RationalUnifiedProcess(RUP)предлагает итеративную модель разработки, включающую четыре фазы: начало, исследование, построение и внедрение. Каждая фаза может быть разбита на этапы (итерации), в результате которых выпускается версия для внутреннего или внешнего использования. Прохождение через четыре основные фазы называется циклом разработки, каждый цикл завершается генерацией версии системы. Если после этого работа над проектом не прекращается, то полученный продукт продолжает развиваться и снова минует те же фазы. Суть работы в рамках RUP - это создание и сопровождение моделей на базе UML.

MicrosoftSolutionFramework(MSF)сходна с RUP, так же включает четыре фазы: анализ, проектирование, разработка, стабилизация, является итерационной, предполагает использование объектно-ориентированного моделирования. MSF в сравнении с RUP в большей степени ориентирована на разработку бизнес- приложений.

ExtremeProgramming(XP).Экстремальное программирование (самая новая среди рассматриваемых методологий) сформировалось в 1996 году. В основе методологии командная работа, эффективная коммуникация между заказчиком и исполнителем в течение всего проекта по разработке ИС, а разработка ведется с использованием последовательно дорабатываемых прототипов. [3, с. 10]

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

Рисунок 2. Стандарты, описывающие структуру жизненного цикла ПО.

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

- формирование проектных спецификаций;

- введение в эксплуатацию и сопровождение;

- выведение из эксплуатации.

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

Изменению графика работ и повышению бюджета проекта ведет уменьшение производительности коллектива разработчиков.

В основе сущности предварительного алгоритмического проектирования лежит наличие "монополитности" документации и персонального кода, отсутствие гибкости. Что в совокупности ведёт к отсутствию у разработчиков оперативной реакции на изменяющиеся требования заказчиков.

Отрицательным фактором выступает мнение многих коллективов разработчиков о создании программного обеспечения (ПО), как о недостаточно всеобъемлющем и формализованном процессе. Это является почвой для неконтролируемого роста различных норм и правил проектирования, диаграмм, спецификаций и нотаций.

К примеру для стандарта UML 2.0 (Unified Modeling Language) существуют 14 типов диаграмм, предназначенных для применения. Однако на практике использованию подлежат в два раза меньше типов диаграмм.

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

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

Применения моделей полного жизненного цикла

В наше время руководство муниципалитетов все чаше сталкивается с такой проблемой, как нехватка ресурсов для своего нормального функционирования. Стоит отметить, что это нормальное явление не только для Российской Федерации, но также и для большинства зарубежных государств. Удовлетворение потребностей муниципалитета в финансовом плане является прежде всего вопросом о формировании рациональной и достаточной доходной базы органов местного самоуправления.

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

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

В наше время руководство муниципалитетов все чаше сталкивается с такой проблемой, как нехватка ресурсов для своего нормального функционирования. Стоит отметить, что это нормальное явление не только для Российской Федерации, но также и для большинства зарубежных государств. Удовлетворение потребностей муниципалитета в финансовом плане является прежде всего вопросом о формировании рациональной и достаточной доходной базы органов местного самоуправления.

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

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

Гибкие методики разработки ПО

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

В связи с этим в практической деятельности целесообразно оперировать понятиями ЖЦ отдельной сборочной версии или итерации, что позволит сконцентрировать видение заказчиков и разработчиков на функциональном, более узком аспекте деятельности ИТ-коллективов, связанных в первую очередь с разработкой ПО. Таким образом, в гибкой разработке этапы проектирования, программирования и сопровождения непрерывны, неотделимы друг от друга и входят в состав отдельной короткой итерации разработки. [5, с. 150]

Список использованной литературы:

1. Добрынин А. С., Р. С. Койнов, С. М. Кулаков. Модель неполного жизненного цикла программного обеспечения // Вестник Астраханского государственного технического университета. Серия: Управление, вычислительная техника и информатика. № 2 / 2015. С 65-70

2. Добрынин А. С. Формирование расписаний в задачах временного планирования / А. С. Добрынин, С. М. Кулаков, Р. С. Койнов, А. В. Грачёв // Вестн. Астрахан. гос. техн. ун-та. Сер.: Управление, вычисли- тельная техника и информатика. 2014. № 4. С. 103–111.

4. Зимин В. В. Основы управления жизненным циклом сервиса систем информатики и автоматизации (лучшие практики ITIL): учеб. пособие / В. В. Зимин, А. А. Ивушкин, С. М. Кулаков, К. А. Ивушкин. Кемерово: Кузбассвузиздат, 2013. 96-100 с

5. Чумакова Т.Я., Цыганенко С.М. Стандартизация в сфере информационных технологий // Математичні машини і системи. – 2009. – № 2. – С. 145 – 150.

Одним из базовых понятий методологии проектирования ПО является понятие жизненного цикла ее программного обеспечения (ЖЦ ПО). ЖЦ ПО — это непрерывный процесс, который начинается с момента принятия решения о необходимости его создания и заканчивается в момент его полного изъятия из эксплуатации.

Основным нормативным документом, регламентирующим ЖЦ ПО, является международный стандарт ISO/IEC 12207 (ISO — International Organization of Standardization — Международная организация по стандартизации, IEC — International Electrotechnical Commission — Международная комиссия по электротехнике). Он определяет структуру ЖЦ, содержащую процессы, действия и задачи, которые должны быть выполнены во время создания ПО. В данном стандарте ПО (программный продукт) определяется как набор компьютерных программ, процедур и, возможно, связанной с ним документации и данных. Процесс определяется как совокупность взаимосвязанных действий, преобразующих некоторые входные данные в выходные. Каждый процесс характеризуется определенными задачами и методами их решения, исходными данными, полученными от других процессов, и результатами.

Структура ЖЦ ПО по стандарту ISO/IEC 12207 базируется на трех группах процессов:

· основные процессы ЖЦ ПО (приобретение, поставка, разработка, эксплуатация, сопровождение);

· вспомогательные процессы, обеспечивающие выполнение основных процессов (документирование, управление конфигурацией, обеспечение качества, верификация, аттестация, оценка, аудит, решение проблем);

· организационные процессы (управление проектами, создание инфраструктуры проекта, определение, оценка и улучшение самого ЖЦ, обучение).

Модели жизненного цикла ПО

Модель жизненного цикла — структура, определяющая последовательность выполнения и взаимосвязи стадий и этапов, выполняемых на протяжении ЖЦ. Модель ЖЦ зависит от специфики ПО и специфики условий, в которых последняя создается и функционирует. Основные модели ЖЦ следующие.

1. Каскадная модель (до 70-х годов XX в) определяет последовательный переход на следующий этап после завершения предыдущего.

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

Достоинство: хорошие показатели по срокам разработки и надежности при решении отдельных задач.

Недостаток: неприменимость к большим и сложным проектам из-за изменчивости требований к системе в течение длительного проектирования.

Модель предусматривает обобщение полученных проектных решений отдельных задач в общесистемные решения. При этом возникает потребность в пересмотре ранее сформулированных требований.

Достоинство: возможность оперативно вносить коррективы в проект.

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

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

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




Достоинства:

1. сокращение число итераций и, следовательно, число ошибок и несоответствий, которые необходимо исправлять;

2. сокращение сроков проектирования;

3. упрощение создания проектной документации.

Недостаток: высокие требования к качеству общесистемного репозитория (общей базы проектных данных).

Спиральная модель лежит в основе технологии быстрой разработки приложений или RAD-технологии (rapid application development), которая предполагает активное участие конечных пользователей будущей системы в процессе ее создания. Основные стадии информационного инжиниринга следующие:

· Анализ и планирование информационной стратегии. Пользователи вместе со специалистами-разработчиками участвуют в идентификации проблемной области.

· Проектирование. Пользователи под руководством разработчиков принимают участие в техническом проектировании.

· Конструирование. Разработчики проектируют рабочую версию ПО с использованием языков 4-го поколения;

· Внедрение. Разработчики обучают пользователей работе в среде новой ПО.

Читайте также: