В чем разница между инкрементной моделью программного процесса, эволюционной моделью и спиральной моделью?
Я изучаю разработку программного обеспечения в этом году, и я немного смущен вопросом в названии.
Как мой профессор, так и ссылка ("разработка программного обеспечения подход практикующего") различает три названия как разные модели. Однако я не вижу очевидной разницы, поскольку их методологии выглядят одинаково для меня, но используют разные утверждения для их определения. Я чувствую, что практически все они представляют одну и ту же модель процесса.
может кто-нибудь объяснить различные модели лучше?
3 ответов
Крейг Ларман написал широко на эту тему, и я предлагаю его знаменитую статью итеративное и инкрементное развитие: Краткая история (PDF) и его книги гибкая и итеративная разработка: руководство менеджера.
вот как я бы суммировал вещи:
Поэтапное Развитие
инкрементное развитие практика где функциональные возможности системы отрезаны в инкременты (небольшие части). В каждом шаге, в вертикальный срез функциональности обеспечивается путем прохождения всех действий процесса разработки программного обеспечения, от требований до развертывания.
инкрементная разработка (добавление) часто используется вместе с итеративной разработкой (повтор) в разработке программного обеспечения. Это называется итеративной и инкрементной разработкой (IID).
эволюционный метод
условия эволюция и эволюционная были введен компанией Tom Gilb в своей книге Показатели Программного Обеспечения опубликовано в 1976 году, где он писал об Эво, его практике IID (возможно, старейшей). Эволюционное развитие сосредоточено на скорейшем обеспечении высокой ценности для заинтересованных сторон и на получении и использовании обратной связи от заинтересованных сторон.
на Разработка Программного Обеспечения: Итеративный И Эволюционный в Craig Larman выразился примерно так:
эволюционное итеративное развитие подразумевает, что требования, план, оценки и решение развиваться или уточняются в течение итераций, а не полностью определенный и "замороженный" в основных усилиях по спецификации до начала итераций разработки. Эволюционные методы соответствуют модели непредсказуемых открытий и изменений в разработке новых продуктов.
а затем обсуждает далее эволюционная требований, эволюционная и адаптивное планирование, эволюционная доставка. Проверьте ссылку.
спиральная модель
спиральная модель-это еще один подход IID, который был формализован Барри Бемом в середина 1980-х годов как расширение водопада для более эффективной поддержки итеративного развития и уделяет особое внимание управлению рисками (посредством итеративного анализа рисков).
цитирую итеративная и инкрементная разработка: краткое описание История:
ориентир 1985 года в публикациях IID была ли "спиральная модель" Барри Бема Разработка и совершенствование программного обеспечения" (хотя более частое цитирование дата 1986). Спиральная модель была возможно, не первый случай приоритетные циклы разработки Группы риск: Gilb и IBM FSD ранее применять или выступали за вариации эта идея, например. Однако спиральная модель сделала формализовать и сделать выдающийся управляемые рисками итерации концепция и необходимость использования дискретного этап оценки риска в каждом итерация.
что теперь?
Agile методы являются подмножеством IID и эволюционных методов и являются предпочтительными в настоящее время.
ссылки
- итеративное и инкрементное развитие: Краткая история - Крейг Ларман, Виктор Р. Базилии (Июнь 2003)
- Разработка Программного Обеспечения: Итерационные & Эволюционный - Крейг Larman
-
инкрементное и итеративное развитие
- итеративное и инкрементное развитие
- процесс разработки программного обеспечения
- T. Gilb, Software Metrics, Little, Brown, and Co., 1976 (в печати).
- Б. Бем, "спиральная модель разработки и усовершенствования программного обеспечения", Proc. Программный процесс и программное обеспечение int'L Workshop Среды, ACM Press, 1985; также в ACM Software Eng. Примечания, Авг. 1986, с. 22-42.
эти понятия обычно плохо объясняются.
добавочные свойство рабочих продуктов (документов, моделей, кода и т. д.), и это означает, что они создаются постепенно, а не за один раз. Например, вы создаете первую версию модели класса во время анализа требований, затем увеличиваете ее после моделирования пользовательского интерфейса, а затем даже расширяете ее во время детального проектирования.
эволюционная недвижимость результатов, т. е. рабочих продуктов, которые доставляются пользователям, и в этом отношении это особый вид "инкрементного". Это означает, что все, что доставляется, доставляется как можно раньше в первоначальной форме, не полностью функциональной, а затем повторно доставляется так часто, каждый раз с большей и большей функциональностью. Это часто подразумевает итерационный жизненный цикл.
[An итерационный жизненный цикл, но, кстати, относится к задачам, которые вы выполняете, (в отличие от" инкрементного", который относится к продуктам; это мнение, принятое СЕМАТ), и это означает, что вы выполняете задачи одного и того же типа снова и снова. Например, в итеративном жизненном цикле вы обнаружите, что занимаетесь дизайном, затем кодированием, затем модульным тестированием, затем выпуском, а затем снова и снова повторяете одно и то же. Обратите внимание, что итеративные и инкрементные не подразумевают друг друга; возможна любая комбинация обоих.]
на спираль модель для жизненных циклов-это модель, предложенная Барри Бем это совмещает аспекты водопада с новаторскими выдвижениями как итеративный подход и встроенный контроль качества.
для понятий "рабочий продукт", "задача", "жизненный цикл" и др. пожалуйста, смотрите ISO / IEC 24744.
надеюсь, что это помогает.
Это litteris ipsis определение из ISO 24748-1:2016 (Управление жизненным циклом систем и программного обеспечения):
существует множество различных стратегий развития, которые могут быть применены к системным и программным проектам. Три из этих стратегий кратко излагаются ниже:
a) сквозной. "Сквозная" стратегия, также называемая "водопадом", состоит из выполнения процесса разработки один раз. Упрощенно: определите потребности пользователя, определите требования, конструируйте систему, снабдите систему, испытайте, исправьте и поставьте.
b) инкрементный. "Инкрементная" стратегия определяет потребности пользователей и системные требования, а затем выполняет остальную часть разработки в последовательности сборок. Первая сборка включает часть запланированных возможностей, следующая сборка добавляет больше возможностей и так далее, пока система не будет завершена.
c) эволюционный. "Эволюционная" стратегия также развивает систему в сборках, но отличается от инкрементной стратегии в признании того, что потребности пользователя не полностью поняты и все требования не могут быть определены заранее. В этой стратегии потребности пользователей и системные требования частично определяются заранее, а затем уточняются в каждой последующей сборке.
надеюсь, что это помогает. Тати!--3-->