Во-первых, независимо от модели развития. Разработка программного обеспечения включает как минимум следующие циклы, в том числе:
Поскольку все модели разработки имеют одинаковый цикл разработки, в чем отражаются различия между разными моделями разработки? Или каковы различия между разными моделями разработки в управлении процессом разработки?
Различия, которые я понимаю, в основном отражаются в:
Основываясь на вышеизложенном, давайте взглянем на часто используемые модели разработки:
Давайте сосредоточимся на модели водопад, инкрементная модель, итеративная разработка、Гибкая разработка。
Ее также можно рассматривать как модель жизненного цикла программного обеспечения.
Основные этапы напрямую связаны с основной деятельностью по развитию:
Основная проблема заключается в том, что проект разбивается на эти четкие фазы. Поэтому только в том случае, если вы хорошо понимаете потребности,и когда значительные изменения вряд ли произойдут во время разработки системы,Пригодна для использования модель водопада.
Идея состоит в том, чтобы сначала разработать первоначальную реализацию, предоставить ее пользователям и выслушать их мнения и предложения, а затем продолжать модифицировать несколько версий, пока не будет создана достаточная система. Такие виды деятельности, как описание, разработка и проверка, не являются отдельными, а взаимосвязаны. В то же время между этими действиями может передаваться быстрая информация обратной связи.
постепенное развитие отражает наш подход к решению проблем,Каждое приращение или версия системы включает в себя часть функциональности, необходимой пользователям. в целом,Ранние версии системы включают наиболее важные или срочные функциональные требования.。это означаетсуществовать Первые дниразвиватьэтап,Пользователи могут оценить систему относительно рано,Посмотрите, соответствует ли это потребностям. Если оно не отвечает потребностям,Просто измените текущий прирост,Или, может быть, новые функции обнаружены и подготовлены к следующему приращению.,Таким образом, затраты можно существенно сократить.
Снижает затраты на адаптацию к изменениям потребностей пользователей. Объем работы по повторному анализу и изменению документа намного меньше, чем у модели водопада.
Процесс невидим. Менеджерам необходимо отслеживать прогресс с помощью регулярно предоставляемых документов. Если скорость разработки системы слишком высока, создавать документы, отражающие каждую версию системы, будет неэкономично.
С добавлением новых прибавок,Структура системы постепенно деградирует。除非投入时间и金钱用существовать Рефакторингсистемаструктурно улучшитьпрограммное обеспечение,В противном случае регулярные изменения могут повредить структуру системы. через некоторое время,Чем дальше вы продвигаетесь, тем труднее менять систему.,И затраты будут постепенно расти.
Так что же такое «итеративная разработка»? Английское слово «итерация» — iterative, что буквально переводится как «повторение». Итеративная разработка на самом деле означает «повторяющаяся разработка».
Итеративная разработка разбивает большую задачу на несколько последовательных разработок, и ее суть — постепенное улучшение. Итак, его определение:
При итеративной разработке Вся работа разбита на серию небольших, фиксированных по времени небольших проектов. Это называется серией итераций, то есть итеративной. разработка。
Еще в конце 1950-х годов в области программного обеспечения появились итеративные модели.
Самый ранний итерационный процесс можно описать как «поэтапную модель». Итеративная модель — это периодическая модель, рекомендованная RUP. Определяется как: Итерация включает в себя все действия по разработке, которые приводят к выпуску продукта (стабильной исполняемой версии продукта), а также все другие периферийные элементы, необходимые для использования этого выпуска.
В некотором смысле, итерация разработки — это полный процесс прохождения всех рабочих процессов: анализа требований, проектирования, реализации и тестирования.
По сути, это что-то вроде небольшого проекта-водопада.
RUP считает, что все этапы можно разделить на итерации, и каждая итерация будет создавать готовый к выпуску продукт, который является подмножеством конечного продукта.
итеративная разработкасамдаплановая стратегия пересмотра:проходил несколько разразвиватьулучшитьсуществовать Особенности сборки,Шаг за шагом к идеальному решению。Например,Продукт, о котором мало что известно,Начните с создания прототипа, чтобы получить важные знания,Затем вы можете создать немного лучшую ревизию.,Далее следует довольно хорошая версия. Например,В процессе написания статьи,Получив обратную связь и получив более глубокое понимание того, как выразить тему, я,Каждую главу я пересматривал несколько раз.
Поэтапное развитие:
Итеративная разработка:
Итеративная разработка требует лишь разделения разработки на несколько итераций и не отвечает на важный вопрос: как разделить итерации, какие задачи находятся в этой итерации, а какие задачи в следующей итерации? В настоящее время для разделения итераций обычно используется «инкрементальная разработка» (incremental development).
Так называемая «поэтапная разработка» означает, что в каждую версию программного обеспечения будет добавлена полная функция, понятная пользователям. Другими словами, итерации делятся по новым функциям.
Гибкая разработка(agile development) — очень популярный метод разработки программного обеспечения. По статистике 90% разработок ПО в 2018 году использовали Гибкую разработка。
Гибкая разработкаосновнойдаитеративная разработка(iterative разработка). Agile должен быть принят итеративно разработкаспособ。
Гибкая разработка — это общая концепция, а итеративная разработка — это практика Гибкая Средство разработки концепции. Гибкая Помимо итеративной разработки, разработка также включает в себя множество других методов управления и инженерных технологий, таких как проектирование эволюционной архитектуры, гибкое моделирование, рефакторинг и автоматический регрессионный тест (ART). Подводя итог, Гибкая разработкаиитеративная Разработка — это отношения между целым и частями. Первое — это семья, а второе — члены семьи. Хотя Agile и итерация — разные вещи, они неразделимы. Органическое сочетание этих двух факторов может не только обеспечить качество продукта, но и сохранить преимущества в процессе постоянного улучшения проекта. Впитайте суть и устраните шлаки. Только так проект станет идеальным.
Приращениеразвиватьплюситеративная разработка,Вот настоящая Гибкая разработка。
Гибкая В основе разработки лежат потребности пользователей и используется итеративный и пошаговый подход к разработке программного обеспечения.
Гибкая Первое преимущество разработки – ранняя доставку, тем самым существенно сокращая затраты。
Давайте возьмем в качестве примера компанию по недвижимости из предыдущего раздела. Если мы будем следовать традиционной «модели развития водопада», мы сначала выкапываем фундаменты 10 зданий, затем строим каркасы, а затем возводим крыши. предыдущий этап завершен. На сдачу сразу 10 зданий уйдет два года. Другими словами, если не принять во внимание предварительные продажи, проекту придется ждать до двух лет, чтобы вернуть деньги.
Гибкая идея — первое здание, сданное за шесть месяцев.,Каждые два месяца будет сдаваться одно здание. поэтому,Возврат 10% в течение полугода.,В будущем денежный поток будет поступать каждый месяц.,Финансовое давление значительно снижается.
Второе преимущество Гибкой идеи –,Будьте в курсе потребностей рынка,Снизить риск непригодности продукта。
Пожалуйста, подумайте, какая ситуация приведет к меньшим потерям: после того, как все 10 зданий будут построены, и вы обнаружите, что их нельзя продать, или после того, как первое здание будет построено, только для того, чтобы обнаружить, что его нельзя продать, а затем улучшите или остановите строительство следующих 9 зданий ?
Для программных проектов,Сначала создайте прототип продукта,Понять признание рынка,Зачастую это ключ к успеху проекта. Есть книга "Код разрушения снов".,Подзаголовок: «20+ программистов».,три года,4732 ошибки,1 миллион+долларов США,История окончательного провала»,этотто есть Не принят Гибкая Результаты для разработки. Напротив, Инстаграм Изначально это была регистрация по географическому местоположению. App, но позже выяснилось, что пользователей не особо заботит географическое положение и они предпочитают загружать фотографии, поэтому они заменили его на программное обеспечение для загрузки фотографий и стали единорогами.
потому что Гибкая Разработчик может продолжать метод проб и ошибок, чтобы определить функции, которые наиболее важны для бизнеса, а затем с помощью итераций корректировать направление развития программного обеспечения. По сравнению с традиционными методами вероятность успеха продукта значительно возрастает. Если рыночный спрос неопределенен или вы не знакомы с этой сферой, тогда Гибкая разработка — почти единственный возможный способ справиться с ситуацией.
В «Манифесте гибкой разработки программного обеспечения» упоминаются четыре ценности.
В декларации также предлагалось двенадцать принципов Гибкой идеи.
Первая представляет собой модель цикла разработки программного обеспечения и процесс разработки, а вторая представляет собой разновидность разработки программного обеспечения; Коллекция методов управления проектами, которая является наиболее фундаментальным различием между ними.。иитеративная разработкапереписыватьсядамодель водопада、спиральная модель,Аналогом Гибкой идеи является Scrum.,XP (экстремальное программирование),Кристалл (кристальное программирование),Так что эти две вещи нельзя путать,Но определенная связь есть.
в последние годы,из-за некоторых особых потребностей,все больше и большепрограммное обеспечение Команды начинают внедрять Гибкая режиме разработки, но в процессе разработки было недостаточно понимания его основных идей и некоторых гибких У команды разработки даже нет менеджера, только один Scrum Мастер подчиняется продакт-менеджеру, и распределение обязанностей тоже весьма неоднозначное.
За исключением компаний-разработчиков программного обеспечения,На многих традиционных предприятиях,Гибкая разработка превратилась в процесс разработки без ответственного лица. Так называемые менеджеры по продуктам, продажам и генеральные директора могут добавлять функции и изменять требования по своему желанию, а затем передавать их команде разработчиков для «гибкой» разработки. В процессе разработки исследование требований, дизайн, обратная связь, обзоры кода и тестирование не нужны. Это смесь технологий, какой бы шаг ни был достигнут, он считается одним шагом, и Гибкая его полностью игнорирует. Суть идеи.
На самом деле, Гибкая идея не такая, Суть итерации заключается в предварительном планировании программного обеспечения. Без полного руководства профессиональных проектировщиков созданная система программного обеспечения будет некачественной. -- Время превышает лимит, бюджет превышает бюджет, полно всяких ненаучных прихотей и ему все равно, логичны потребности или нет.
Поэтому независимо от того, какое мышление или метод развития используется, необходимо сформулировать разумный и научный план развития, чтобы вы могли получить вдвое больший результат, прилагая вдвое меньше усилий.
Для нас, разработчиков, повторное использование программного обеспечения очень важно для долгосрочного проекта итерации.
В большинстве программных проектов существует некоторая степень повторного использования программного обеспечения.
Основные этапы:
В процессах, ориентированных на повторное использование, могут использоваться три типа программных компонентов:
Преимущества:
Более классические модели процессов разработки программного обеспечения включают:
Эти три модели не являются взаимоисключающими.,и часто используются вместе,Особенно для разработки больших систем. для больших систем,Комплексная модель водопадаи Приращениеразвивать模型из优点да有意义из。
Справочная статья:
Получите модель процесса разработки программного обеспечения в одной статье——модель водопада、постепенное развитие/Разница между поэтапной разработкой и итеративной разработкой https://blog.csdn.net/weixin_55267022/article/details/118121466
Понимание моделей разработки (водопадная, итеративная, гибкая) https://zhuanlan.zhihu.com/p/452759262
Краткое обсуждение Гибкая разработкаконцепции иитеративная разработкаплан https://www.minjiekaifa.com/agilearticles/agile-development-and-iterative-development-solutions-80369.html
Гибкая вводное руководство по разработке https://www.ruanyifeng.com/blog/2019/03/agile-development.html
Краткое обсуждение Гибкая разработкаконцепции иитеративная разработкаплан https://www.minjiekaifa.com/agilearticles/agile-development-and-iterative-development-solutions-80369.html
ПерепечаткаЭтот сайтстатья《Понимание моделей разработки: каскадная модель/инкрементная/итеративная/гибкая разработка – примечания.》, Пожалуйста, укажите источник:https://www.zhoulujun.cn/html/webfront/engineer/Architecture/8935.html