Жизненный цикл — различия между версиями

(Отмена правки 1150, сделанной участником Admin (обс.))
м
 
(не показано 19 промежуточных версий этого же участника)
Строка 1: Строка 1:
'''Жизненный цикл системы''' (system life cycle) — это деятельность всех обеспечивающих систем, ведущих целевую систему от её замысла до вывода из эксплуатации, обычно эта деятельность разбита на стадии, которые вполне могут быть не только последовательными, но и перекрываться во времени друг с другом. Когда говорят “управление жизненным циклом” как раз говорят об управлении деятельностью (управлении обеспечивающей системой), обеспечивающей переход от одной стадии жизненного цикла к другой.
+
'''Жизненный цикл системы''' (system life cycle) — это деятельность всех обеспечивающих [[система|систем]], ведущих целевую систему от её замысла до [[Утилизация|вывода из эксплуатации]], обычно эта деятельность разбита на [[:Категория:Стадии ЖЦ|стадии]], которые вполне могут быть не только последовательными, но и перекрываться во времени друг с другом. Когда говорят “[[управление жизненным циклом]]” как раз говорят об управлении деятельностью (управлении обеспечивающей системой), обеспечивающей переход от одной стадии жизненного цикла к другой.
  
 
'''Жизненный цикл проекта''' (project life cycle) — это часть жизненного цикла системы, которая укладывается в рамки проекта. Иногда жизненный цикл проекта совпадает во времени с какой-то стадией жизненного цикла, иногда не совпадает. Более того, совершенно необязательно, что в рамки жизненного цикла проекта (деятельности проекта) попадает вся деятельность какой-то стадии жизненного цикла системы. Проект обычно бьётся на этапы (чтобы хоть как-то отделять этапы проекта от стадий жизненного цикла).
 
'''Жизненный цикл проекта''' (project life cycle) — это часть жизненного цикла системы, которая укладывается в рамки проекта. Иногда жизненный цикл проекта совпадает во времени с какой-то стадией жизненного цикла, иногда не совпадает. Более того, совершенно необязательно, что в рамки жизненного цикла проекта (деятельности проекта) попадает вся деятельность какой-то стадии жизненного цикла системы. Проект обычно бьётся на этапы (чтобы хоть как-то отделять этапы проекта от стадий жизненного цикла).
  
 
== Рабочие продукты ==
 
== Рабочие продукты ==
Альфа определения (definition) жизненного цикла выражается в рабочих продуктах — описаниях (description) жизненного цикла, чаще всего это разного сорта диаграммы (простейшими из которых являются одномерные “стрелочки времени с зарубками на границах стадий” и “колбаски с именами стадий”, более сложные представляются двумерными диаграммами, а самые сложные подразумевают использование графических языков ситуационной инженерии методов).
+
[[:Категория:Альфы|Альфа]] определения (definition) жизненного цикла выражается в [[Рабочий продукт|рабочих продуктах]] — описаниях (description) жизненного цикла, чаще всего это разного сорта диаграммы (простейшими из которых являются одномерные “стрелочки времени с зарубками на границах стадий” и “колбаски с именами стадий”, более сложные представляются двумерными диаграммами, а самые сложные подразумевают использование графических [[:Категория:Языки моделирования|языков]] [[Ситуационная инженерия методов|ситуационной инженерии методов]].
  
 
== Стадии жизненного цикла ==
 
== Стадии жизненного цикла ==
Стадии жизненного цикла выделяют по изменению в ходе жизненного цикла преимущественного образа мышления (согласно [[ISO 24744]] — change of mental framework). Это не слишком формальное определение, но оно как минимум не предлагает сосредотачиваться на “состоянии целевой системы”, а даётся именно в терминах обеспечивающих систем. На разных стадиях жизненного цикла системы люди думают про разное: на стадии проектирования люди думают о проектировании, на стадии строительства о стройке, на стадии эксплуатации — об эксплуатации.
+
''Основная статья:'' [[:Категория:Стадии ЖЦ|Стадии ЖЦ]]
  
 
== Управление жизненным циклом ==
 
== Управление жизненным циклом ==
см. [[Управление жизненным циклом]]
+
''Основная статья:'' [[Управление жизненным циклом]]
  
 
== Модели жизненного цикла ==
 
== Модели жизненного цикла ==
=== Водопадная (каскадная) ===
+
* [[Водопад|Водопадная (каскадная)]]
Модель, в которой жизненный цикл выглядит как поток, последовательно проходящий фазы анализа требований, проектирования, реализации, тестирования, интеграции и поддержки.
+
* [[Спираль|Спиральная]]
 
+
* [[V-диаграмма]]
=== Спиральная ===
+
* [[Горбатая диаграмма]]
Спиральная модель стала существенным прорывом в понимании природы разработки ПО. Она представляет собой процесс разработки программного обеспечения, сочетающий в себе как итеративность, так и этапность.
+
* [[Agile]]
 
+
Отличительной особенностью этой модели является специальное внимание рискам, влияющим на организацию жизненного цикла. Боэм формулирует десять наиболее распространённых (по приоритетам) рисков:
+
# Дефицит специалистов.
+
# Нереалистичные сроки и бюджет.
+
# Реализация несоответствующей функциональности.
+
# Разработка неправильного пользовательского интерфейса.
+
# «Золотая сервировка», перфекционизм, ненужная оптимизация и оттачивание деталей.
+
# Непрекращающийся поток изменений.
+
# Нехватка информации о внешних компонентах, определяющих окружение системы или вовлечённых в интеграцию.
+
# Недостатки в работах, выполняемых внешними (по отношению к проекту) ресурсами.
+
# Недостаточная производительность получаемой системы.
+
# Разрыв между квалификацией специалистов и требованиями проекта.
+
 
+
Большая часть этих рисков связана с организационными и процессными аспектами взаимодействия специалистов в проектной команде.
+
 
+
Каждый виток спирали соответствует созданию фрагмента или версии программного обеспечения, на нем уточняются цели и характеристики проекта, определяется его качество и планируются работы следующего витка спирали. Таким образом углубляются и последовательно конкретизируются детали проекта и в результате выбирается обоснованный вариант, который доводится до реализации. Каждый виток разбит на 4 сектора:
+
* оценка и разрешение рисков,
+
* определение целей,
+
* разработка и тестирование,
+
* планирование.
+
 
+
Главная задача — как можно быстрее показать пользователям системы работоспособный продукт, тем самым активизируя процесс уточнения и дополнения требований. Основная проблема спирального цикла — определение момента перехода на следующий этап. Для её решения необходимо ввести временные ограничения на каждый из этапов жизненного цикла. Переход осуществляется в соответствии с планом, даже если не вся запланированная работа закончена. План составляется на основе статистических данных, полученных в предыдущих проектах, и личного опыта разработчиков.
+
 
+
=== V-диаграмма ===
+
Используется чаще всего, чтобы пояснять самые общие черты системноинженерного процесса/метода/жизненного цикла:
+
* Фундаментальную разницу между практиками определения системы (работы с информацией), реализации системы (работы с веществами и полями), а также использованием системы. В том числе на V-диаграмме показывается основная идея системной инженерии “восемь раз отмерь, один раз отрежь”: рекомендуется максимизировать трату ресурсов на более ранних стадиях, чтобы потом экономить трату много больших ресурсов на более поздних стадиях.
+
* Соответствие определений и воплощений системы, поддерживаемое через проверки (верификация) и приёмки (валидация).
+
* Ведущие практики жизненного цикла (дисциплины-рабочие продукты- инструменты).
+
* Разницу между системноинженерными практиками (выше пунктирной линии), имеющими дело с системой в целом и “обычными” инженерными практиками, имеющие дело с частями системы.
+
* Взаимодействие между практиками: работа идёт отнюдь не по той практике-стадии, которой соответствует точка времени на диаграмме! Нет, одновременно задействована вся “вертикаль” практик — архитектор общается и с инженерами по требованиям, и с занимающимися рабочим проектированием, а инженер-интегратор общается и с эксплуатационщиками, и с производителями оборудования.
+
 
+
Эта простейшая диаграмма имеет огромное число вариаций и модификаций (например [http://en.wikipedia.org/wiki/Dual_Vee_Model Dual V-model]).
+
 
+
=== Горбатая диаграмма ===
+
На этой диаграмме phases (фазы) это стадии жизненного цикла, которые в свою очередь разбиты на итерации. Практики названы “дисциплинами”. Чётко видно, что работы по требованиям продолжаются вплоть до стадии передачи в эксплуатацию (transition), а тестирование начинается на начальных стадиях, а не только при подготовке к передаче в эксплуатацию.
+
  
 
== Практики (processes) жизненного цикла в версии [[ISO 15288]] ==
 
== Практики (processes) жизненного цикла в версии [[ISO 15288]] ==
С целевой системой в плане продвижения альф [[Определение системы|определения]] и [[Воплощение системы|воплощения системы]] непосредственно работают главным образом технические практики из [[ISO 15288]]. Остальные практики жизненного цикла системной инженерии работают с обеспечивающей системой, продвигая альфы [[Работы|работы]], [[Технологии|технологии]], [[Команда|команды]], [[Возможности|возможностей]] и [[Стейкхолдеры|стейкхолдеров]]. Само определение вида жизненного цикла входит как отдельная практика (2.1).
+
С целевой системой в плане продвижения альф [[Определение системы|определения]] и [[Воплощение системы|воплощения системы]] непосредственно работают главным образом технические практики из [[ISO 15288]]. Остальные практики жизненного цикла системной инженерии работают с обеспечивающей системой, продвигая альфы [[Работа|работы]], [[Технологии|технологии]], [[Команда|команды]], [[Возможности|возможностей]] и [[Стейкхолдер|стейкхолдеров]]. Само определение вида жизненного цикла входит как отдельная практика (2.1).
  
 
Для некрупных проектов этот стандарт избыточен.
 
Для некрупных проектов этот стандарт избыточен.
 
== [http://mydotnetcoolfaqs.blogspot.ru/2011/04/ Виды жизненного цикла] (стили, методы разработки) ==
 
=== Водопад ===
 
(cascade, но переводят “каскад” редко, хотя такой перевод и более правилен) - такие стили, при которых отдельные практики выполняются последовательно, как вода проходит каскад — сначала разрабатываются требования, потом архитектура, потом проект, потом проходит изготовление, потом сборка и т.д. Все рабочие продукты стадий проходят hand over (передачу) на следующую стадию, и дальше не меняются, а используются для получения продуктов этой стадии. Ключевая предпосылка “водопада” — это то, что '''практики совпадают со стадиями жизненного цикла'''. То есть “проектирование” — это и практика, и стадия жизненного цикла. “Тестирование” — это и практика, и название жизненного цикла.  В реальной жизни выполнение работ каждой практики-стадии вызывает необходимость обращения к уже прошедшим практикам (но их стадии-то прошли, и ресурсов на них уже нет, и рабочие продукты уже считаются сданными!). Ужас в том, что возвращаться назад приходится часто не на одну стадию-практику-ступеньку, а сразу на несколько, в том числе бывает, что и с последней на первую!
 
 
=== Спираль ===
 
'''"спиральная" модель жизненного цикла''', придуманная Barry Boehm — разработка происходит “по спирали”, в которой одновременно выполняется цикл из нескольких практик, поэтому практики и стадии жизненного цикла оказались разъединены. Проблема остается: практики последовательно выполняются на каждом витке спирали, т.е. сохраняется “микроводопад”.
 
 
=== Agile ===
 
см. [[Agile]]
 
  
 
== Паттерны жизненного цикла ==
 
== Паттерны жизненного цикла ==
[[Паттерны]] жизненного цикла выделяют в зависимости от распределения различных рисков по стадиям жизненного цикла ([http://csse.usc.edu/csse/TECHRPTS/2009/usccsse-2009-502/usc-csse-2009-502.pdf см.]):
+
[[Паттерны]] жизненного цикла выделяют в зависимости от распределения различных рисков по стадиям жизненного цикла ([http://csse.usc.edu/TECHRPTS/2009/usc-csse-2009-502/usc-csse-2009-502.pdf см.]):
 
* Купи готовое (Use Single NDI),
 
* Купи готовое (Use Single NDI),
 
* Гибкий (Agile),
 
* Гибкий (Agile),

Текущая версия на 19:27, 9 декабря 2017

Жизненный цикл системы (system life cycle) — это деятельность всех обеспечивающих систем, ведущих целевую систему от её замысла до вывода из эксплуатации, обычно эта деятельность разбита на стадии, которые вполне могут быть не только последовательными, но и перекрываться во времени друг с другом. Когда говорят “управление жизненным циклом” как раз говорят об управлении деятельностью (управлении обеспечивающей системой), обеспечивающей переход от одной стадии жизненного цикла к другой.

Жизненный цикл проекта (project life cycle) — это часть жизненного цикла системы, которая укладывается в рамки проекта. Иногда жизненный цикл проекта совпадает во времени с какой-то стадией жизненного цикла, иногда не совпадает. Более того, совершенно необязательно, что в рамки жизненного цикла проекта (деятельности проекта) попадает вся деятельность какой-то стадии жизненного цикла системы. Проект обычно бьётся на этапы (чтобы хоть как-то отделять этапы проекта от стадий жизненного цикла).

Рабочие продукты

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

Стадии жизненного цикла

Основная статья: Стадии ЖЦ

Управление жизненным циклом

Основная статья: Управление жизненным циклом

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

Практики (processes) жизненного цикла в версии ISO 15288

С целевой системой в плане продвижения альф определения и воплощения системы непосредственно работают главным образом технические практики из ISO 15288. Остальные практики жизненного цикла системной инженерии работают с обеспечивающей системой, продвигая альфы работы, технологии, команды, возможностей и стейкхолдеров. Само определение вида жизненного цикла входит как отдельная практика (2.1).

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

Паттерны жизненного цикла

Паттерны жизненного цикла выделяют в зависимости от распределения различных рисков по стадиям жизненного цикла (см.):

  • Купи готовое (Use Single NDI),
  • Гибкий (Agile),
  • Гибкий с архитектурой (Architected Agile),
  • Формальные методы (Formal Methods),
  • Оборудование с программными компонентами (Hardware with embedded Software component),
  • Неделимость для начала эксплуатации (Indivisible Initial Operational Capability),
  • Много закупок (NDI-intensive) — проектирование (в отличие от конструирования),
  • Гибрид гибкости и плана (Hybrid agile/plan-driven system),
  • Много собственников в системе систем (Multi-owner system of systems),
  • Семейство систем (Family of systems),
  • Brownfield (модернизация),
  • Акцент на сервисах (Services-Intensive).