stringtranslate.com

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

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

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

Обзор

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

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

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

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

История

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

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

Модели

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

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

Водопад

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

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

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

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

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

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

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

Проектирование систем

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

Разработка

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

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

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

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

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

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

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

Оценка

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

Утилизация

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Фазы

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

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

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

Анализ

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

Дизайн

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

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

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

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

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

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

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

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

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

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

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

Оценка

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

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

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

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

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

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

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

Структурированная организация работы

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

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

Базовые показатели

Базовые показатели [ необходимы пояснения ] устанавливаются после четырех из пяти этапов SDLC и имеют решающее значение для итеративного характера модели. [21] Базовые показатели становятся вехами.

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

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

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

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

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

Рекомендации

  1. ^ ВЫБОР ПОДХОДА К РАЗРАБОТКЕ. Проверено 17 июля 2014 г.
  2. ^ Параг К. Пендхаркара; Джеймс А. Роджерб; Гириш Х. Субраманян (ноябрь 2008 г.). «Эмпирическое исследование свойств производственной функции Кобба – Дугласа при разработке программного обеспечения». Информационные и программные технологии . 50 (12): 1181–1188. doi :10.1016/j.infsof.2007.10.019.
  3. ^ «Жизненный цикл разработки систем» . ФОЛДОК . Проверено 14 июня 2013 г.
  4. ^ «Жизненный цикл разработки программного обеспечения (SDLC)» .
  5. ^ «Обзор SDLC: модели и методологии» . Проверено 12 декабря 2021 г.
  6. ^ Тейлор, Джеймс (2004). Управление проектами в области информационных технологий . п. 39.
  7. ^ «Что такое Scrum?». 24 декабря 2019 г.
  8. ^ ab Джеффри Эллиотт (2004) Глобальные информационные технологии для бизнеса . стр.87.
  9. ^ abcd Министерство юстиции США (2003). УПРАВЛЕНИЕ ИНФОРМАЦИОННЫМИ РЕСУРСАМИ Глава 1. Введение.
  10. ^ abc Эвератт, Джорджия; Маклеод, Р. младший (2007). «Глава 2: Жизненный цикл разработки программного обеспечения». Тестирование программного обеспечения: тестирование на протяжении всего жизненного цикла разработки программного обеспечения . Джон Уайли и сыновья. стр. 29–58. ISBN 9780470146347.
  11. ^ Унхелкар, Б. (2016). Искусство гибкой практики: комплексный подход к проектам и организациям. ЦРК Пресс. стр. 56–59. ISBN 9781439851197.
  12. ^ Земля, СК ; Смит, Д.Б.; Уолц, JW (2012). Практическая поддержка определения процесса разработки программного обеспечения по принципу «бережливое производство и шесть сигм»: использование стандартов разработки программного обеспечения IEEE. Джон Уайли и сыновья. стр. 341–3. ISBN 9780470289952.
  13. Кей, Рассел (14 мая 2002 г.). «QuickStudy: жизненный цикл разработки системы». Компьютерный мир .
  14. ^ Тейлор, GD (2008). Введение в логистическую инженерию. ЦРК Пресс. С. 12.6–12.18. ISBN 9781420088571.
  15. ^ «Глава 5». Контроль и аудит информационных систем (PDF) . Институт дипломированных бухгалтеров Индии. Август 2013. с. 5.28.
  16. ^ Радак, С. (nd). «Жизненный цикл разработки системы (SDLC)» (PDF) . Национальный институт стандартов и технологий.
  17. ^ Бланшар и Фабрики (2006). Системная инженерия и анализ, четвертое издание . Прентис Холл. п. 19.
  18. ^ Доктор Джоан Гаус (2007). Введение в инженерию, системную инженерию . Меликон Пти, ООО
  19. ^ Каннингем, Джеймс. «Техническое обслуживание HERC». Фарго . XXI (Северный проспект): 49. Архивировано из оригинала 21 января 2013 года . Проверено 13 мая 2009 г.
  20. ^ abcde Палата представителей США (1999). Политика жизненного цикла разработки систем. стр.13. Архивировано 19 октября 2013 г. в Wayback Machine.
  21. ^ Бланшар, Б.С., и Фабрики, В.Дж. (2006) Системная инженерия и анализ (4-е изд.) Нью-Джерси: Прентис Холл. стр.31
  22. ^ ab Пост, Г., и Андерсон, Д. (2006). Информационные системы управления: Решение бизнес-задач с помощью информационных технологий . (4-е изд.). Нью-Йорк: МакГроу-Хилл Ирвин.

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

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