stringtranslate.com

Жизненный цикл разработки систем

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

В системной инженерии , информационных системах и программной инженерии жизненный цикл разработки систем ( SDLC ), также называемый жизненным циклом разработки приложений , представляет собой процесс планирования, создания, тестирования и развертывания информационной системы . [1] Концепция SDLC применяется к ряду конфигураций оборудования и программного обеспечения, поскольку система может состоять только из оборудования, только из программного обеспечения или из их комбинации. [2] Обычно в этом цикле есть шесть этапов: анализ требований, проектирование, разработка и тестирование, реализация, документирование и оценка.

Обзор

Жизненный цикл разработки систем состоит из отдельных рабочих фаз, которые используются системными инженерами и разработчиками систем для поставки информационных систем . Как и все, что производится на сборочной линии, SDLC направлен на создание высококачественных систем, которые соответствуют или превосходят ожидания, основанные на требованиях, путем поставки систем в запланированные сроки и сметы расходов. [3] Компьютерные системы сложны и часто связывают компоненты с различным происхождением. Были созданы различные методологии SDLC, такие как водопад , спираль , гибкая , быстрое прототипирование , инкрементальная и синхронизация и стабилизация. [4]

Методологии SDLC вписываются в спектр гибкости от agile до итеративного и последовательного. Agile-методологии, такие как XP и Scrum , фокусируются на легких процессах, которые позволяют быстро вносить изменения. [5] Итеративные методологии, такие как Rational Unified Process и метод разработки динамических систем , фокусируются на стабилизации объема проекта и итеративном расширении или улучшении продуктов. Последовательные или крупномасштабные модели проектирования (BDUF), такие как каскадная модель, фокусируются на полном и правильном планировании для руководства более крупными проектами и ограничения рисков для успешных и предсказуемых результатов. [6] Анаморфная разработка направляется объемом проекта и адаптивными итерациями.

В управлении проектами проект может включать как жизненный цикл проекта (PLC), так и SDLC, в течение которых происходят несколько различные действия. По словам Тейлора (2004), «жизненный цикл проекта охватывает все действия проекта , в то время как жизненный цикл разработки систем фокусируется на реализации требований к продукту ». [7]

SDLC не является методологией как таковой, а скорее описанием фаз, которые должна охватывать методология. Список фаз не является окончательным, но обычно включает планирование, анализ, проектирование, сборку, тестирование, реализацию и обслуживание/поддержку. В фреймворке Scrum [8] , например, можно сказать, что одна пользовательская история проходит через все фазы SDLC в течение двухнедельного спринта. В отличие от методологии водопада, где каждое бизнес-требование [ нужна цитата ] переводится в описания функций/функций, которые затем все реализуются, как правило, в течение месяцев или дольше. [ нужна цитата ]

История

По словам Эллиотта (2004), SDLC «возник в 1960-х годах для разработки крупномасштабных функциональных бизнес-систем в эпоху крупных бизнес-конгломератов . Деятельность информационных систем вращалась вокруг сложных процедур обработки данных и обработки чисел ». [9]

Метод структурированного системного анализа и проектирования (SSADM) был разработан для Управления правительственной торговли Великобритании в 1980-х годах. С тех пор, по словам Эллиотта (2004), «традиционные подходы жизненного цикла к разработке систем все чаще заменялись альтернативными подходами и фреймворками, которые пытались преодолеть некоторые присущие традиционному SDLC недостатки». [9]

Модели

Десятифазная версия жизненного цикла разработки систем [10]

SDLC предоставляет набор фаз/шагов/действий для системных проектировщиков и разработчиков. Каждая фаза основывается на результатах предыдущей. [10] [11] [12] [13] Не каждый проект требует, чтобы фазы были последовательными. Для небольших, более простых проектов фазы могут быть объединены/перекрыты. [10]

Водопад

Самая старая и известная модель водопада , которая использует линейную последовательность шагов. [11] Водопад имеет различные разновидности. Одна из разновидностей следующая: [10] [11] [14] [15]

Предварительный анализ

Проведите предварительный анализ, рассмотрите альтернативные решения, оцените затраты и выгоды и представьте предварительный план с рекомендациями.

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

Системный анализ, определение требований

Разложить цели проекта [ требуется уточнение ] на определенные функции и операции. Это включает сбор и интерпретацию фактов, диагностику проблем и рекомендации изменений. Проанализировать потребности конечного пользователя в информации и устранить несоответствия и неполноту: [16]

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

Системное проектирование

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

Разработка

Напишите код.

Интеграция и тестирование

Соберите модули в тестовой среде. Проверьте наличие ошибок, багов и совместимость.

Приемка, установка, развертывание

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

Обслуживание

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

Оценка

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

Утилизация

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

На следующей диаграмме эти этапы разделены на десять шагов — от определения до создания и модификации рабочих продуктов ИТ:

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

Системный анализ и проектирование (SAD) можно считать деятельностью мета-разработки, которая служит для установки сцены и ограничения проблемы. SAD может помочь сбалансировать конкурирующие высокоуровневые требования. SAD взаимодействует с распределенной корпоративной архитектурой, корпоративной ИТ-архитектурой и бизнес-архитектурой и в значительной степени опирается на такие концепции, как разбиение, интерфейсы, персоны и роли, а также развертывание/операционное моделирование, чтобы прийти к высокоуровневому описанию системы. Это высокоуровневое описание затем разбивается на компоненты и модули, которые можно анализировать, проектировать и конструировать отдельно и интегрировать для достижения бизнес-цели. SDLC и SAD являются краеугольными камнями полного жизненного цикла продукта и планирования системы.

Объектно-ориентированный анализ и проектирование

Объектно-ориентированный анализ и проектирование (OOAD) — это процесс анализа проблемной области для разработки концептуальной модели , которая затем может использоваться для руководства разработкой. На этапе анализа программист разрабатывает письменные требования и формальный документ видения посредством интервью с заинтересованными сторонами.

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

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

Некоторые типичные артефакты ввода для OOAD:

Жизненный цикл системы

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

Концептуальный дизайн

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

Ключевые этапы этапа концептуального проектирования включают в себя:

Предварительный проект системы

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

Ключевые этапы этапа предварительного проектирования включают в себя:

Например, как системный аналитик Viti Bank, вам было поручено изучить текущую информационную систему. Viti Bank — быстрорастущий банк на Фиджи . Клиенты в отдаленных сельских районах испытывают трудности с доступом к банковским услугам. Им требуются дни или даже недели, чтобы добраться до места, чтобы получить доступ к банковским услугам. С целью удовлетворения потребностей клиентов банк запросил ваши услуги по изучению текущей системы и выработке решений или рекомендаций о том, как текущая система может быть предоставлена ​​для удовлетворения его потребностей.

Детальное проектирование и разработка

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

Ключевые этапы на этапе детального проектирования и разработки включают в себя:

Производство и строительство

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

Ключевые этапы на этапе создания продукта включают в себя:

Использование и поддержка

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

Ключевые этапы на этапе использования и поддержки включают в себя:

Поэтапный отказ и утилизация

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

Фазы

Системное исследование

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

В технико-экономическом обосновании следует рассмотреть эксплуатационные , финансовые , технические , человеческие факторы, а также правовые/политические вопросы.

Анализ

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

Дизайн

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

Этап проектирования принимает в качестве входных данных уже определенные требования. Для каждого требования создается набор элементов дизайна.

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

Тестирование

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

Могут быть актуальны следующие типы тестирования:

Обучение и переход

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

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

Эксплуатация и техническое обслуживание

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

Оценка

Заключительный этап SDLC заключается в измерении эффективности системы и оценке потенциальных улучшений.

Жизненный цикл

Управление и контроль

Фазы SDLC, связанные с контролем управления [22]

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

Для управления и контроля существенной инициативы SDLC структура декомпозиции работ (WBS) фиксирует и планирует работу. WBS и все программные материалы должны храниться в разделе «описание проекта» проектной записной книжки. [ необходимо уточнение ] Менеджер проекта выбирает формат WBS, который наилучшим образом описывает проект.

Диаграмма показывает, что покрытие охватывает многочисленные фазы SDLC, но связанный MCD (домены управления и контроля) показывает сопоставления с фазами SDLC. Например, анализ и проектирование в основном выполняются как часть домена приобретения и внедрения, а сборка и прототипирование системы в основном выполняются как часть поставки и поддержки. [22]

Структурированная организация с разбивкой по работам

Структура декомпозиции работ [22]

Верхний раздел WBS содержит обзор области действия и временной шкалы проекта. Он также должен суммировать основные фазы и вехи. Средний раздел основан на фазах SDLC. Элементы WBS состоят из вех и задач, которые необходимо выполнить, а не из действий, которые необходимо предпринять, и имеют крайний срок. Каждая задача имеет измеримый результат (например, аналитический документ). Задача WBS может опираться на одно или несколько действий (например, кодирование). Части проекта, требующие поддержки со стороны подрядчиков, должны иметь описание работы (SOW). Разработка SOW не происходит во время определенной фазы SDLC, а разрабатывается для включения работы из процесса SDLC, которая может быть выполнена подрядчиками. [22]

Базовые данные

Базовые линии [ необходимо разъяснение ] устанавливаются после четырех из пяти фаз SDLC и имеют решающее значение для итеративной природы модели. [23] Базовые линии становятся вехами.

Альтернативные методологии

Альтернативными методам разработки программного обеспечения для жизненного цикла разработки систем являются:

Сильные и слабые стороны

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

Смотрите также

Ссылки

  1. ^ ВЫБОР ПОДХОДА К РАЗВИТИЮ. Получено 17 июля 2014 г.
  2. ^ Параг К. Пендхаркара; Джеймс А. Роджерб; Гириш Х. Субраманиан (ноябрь 2008 г.). «Эмпирическое исследование свойств производственной функции Кобба–Дугласа при разработке программного обеспечения». Информационные и программные технологии . 50 (12): 1181–1188. doi :10.1016/j.infsof.2007.10.019.
  3. ^ "Жизненный цикл разработки систем из". FOLDOC . Получено 2013-06-14 .
  4. ^ «Жизненный цикл разработки программного обеспечения (SDLC)».
  5. ^ "Обзор SDLC: модели и методологии" . Получено 2021-12-12 .
  6. ^ Арден, Тревор (1991). Приложения информационных технологий . Лондон: Pitman. ISBN 978-0-273-03470-4.
  7. ^ Тейлор, Джеймс (2004). Управление проектами в области информационных технологий . стр. 39.
  8. ^ «Что такое Scrum?». 24 декабря 2019 г.
  9. ^ Джеффри Эллиотт (2004) Глобальные информационные технологии в бизнесе . стр.87.
  10. ^ abcd Министерство юстиции США (2003). УПРАВЛЕНИЕ ИНФОРМАЦИОННЫМИ РЕСУРСАМИ Глава 1. Введение.
  11. ^ abc Everatt, GD; McLeod, R Jr (2007). "Глава 2: Жизненный цикл разработки программного обеспечения". Тестирование программного обеспечения: Тестирование на протяжении всего жизненного цикла разработки программного обеспечения . John Wiley & Sons. стр. 29–58. ISBN 9780470146347.
  12. ^ Унхелкар, Б. (2016). Искусство Agile-практики: комплексный подход для проектов и организаций. CRC Press. С. 56–59. ISBN 9781439851197.
  13. ^ Лэнд, SK ; Смит, DB; Уолц, JW (2012). Практическая поддержка определения процесса разработки программного обеспечения Lean Six Sigma: использование стандартов разработки программного обеспечения IEEE. John Wiley & Sons. стр. 341–3. ISBN 9780470289952.
  14. ^ Кей, Рассел (14 мая 2002 г.). «QuickStudy: жизненный цикл разработки системы». ComputerWorld .
  15. ^ Тейлор, Г. Д. (2008). Введение в логистическую инженерию. CRC Press. С. 12.6–12.18. ISBN 9781420088571.
  16. ^ "Глава 5". Контроль и аудит информационных систем (PDF) . Институт дипломированных бухгалтеров Индии. Август 2013 г. стр. 5.28.
  17. ^ Шах, Казим. «Фаза обслуживания жизненного цикла разработки программного обеспечения». primetechnologiesglobal . kazim shah . Получено 12 мая 2024 г. .
  18. ^ Радак, С. (nd). "Жизненный цикл разработки системы (SDLC)" (PDF) . Национальный институт стандартов и технологий.
  19. ^ Бланшар и Фабрицки (2006). Системная инженерия и анализ, четвертое издание . Prentice Hall. стр. 19.
  20. ^ Доктор Джоан Гоувс (2007). Введение в инженерию, системная инженерия . Melikon Pty Ltd.
  21. ^ Каннингем, Джеймс. «HERC Maintenance». Fargo . XXI (North Avenue): 49. Архивировано из оригинала 21 января 2013 года . Получено 13 мая 2009 года .
  22. ^ abcde Палата представителей США (1999). Политика жизненного цикла разработки систем. стр. 13. Архивировано 19 октября 2013 г. на Wayback Machine
  23. ^ Бланшар, Б.С. и Фабрицки, В.Дж. (2006) Системная инженерия и анализ (4-е изд.) Нью-Джерси: Prentice Hall. стр.31
  24. ^ ab Post, G., & Anderson, D., (2006). Информационные системы управления: Решение бизнес-проблем с помощью информационных технологий . (4-е изд.). Нью-Йорк: McGraw-Hill Irwin.

Дальнейшее чтение

Внешние ссылки