Водоспадна модель
| Цикл розробки програмного забезпечення |
|
|---|---|
Програміст за роботою |
|
| Діяльність та кроки | |
| Вимоги · Специфікація Архітектура · Дизайн Реалізація · Тестування Розгортання · Підтримка |
|
| Методології | |
| Гнучка · Чистого приміщення DSDM · Iterative · RAD · RUP Spiral · Водоспад · XP · Scrum Lean · V-Model · FDD · TDD |
|
| Допоміжні дисципліни | |
| Конфігураційне керування Документування Якість ПЗ Управління проектами User experience design |
|
| Інструменти | |
| Компілятор · Зневаджувач Профілювальник GUI designer · IDE |
|
Водоспадна модель ( англ. waterfall model ) - послідовний метод розробки програмного забезпечення, названий так через діаграму схожу на водоспад (як на ілюстрації справа).
Цей метод з'явився раніше ніж перше програмне забезпечення. Його застосовували для створення складних інженерних конструкцій (літаків, мостів і подібного). Зрозуміло, що зміни в проекті після того, як вже натягнуті розтяжки коштують дуже дорого, тому метод передбачає перфекціонізм на кожному етапі. А так, як колись ще не існувало формальних методів розробки ПЗ, для неї просто перейняли цю модель.
Перший формальний опис водоспадної моделі, після якої вона стала популярною був здійснений В. В. Ройсом у 1970[1]. Попри те, що стаття містить переважно критику методу, на неї часто посилаються.
Зміст |
Плюси методу [ред.]
- Ніяких переробок
- Гарна специфікація перетікає в гарну документацію
- Зрозуміла модель
- Кодери можуть мати низьку кваліфікацію.
Мінуси [ред.]
- Необхідний перфекціонізм на кожному етапі.
- Важко вносити зміни (якщо взагалі можливо)
- Надлишкове проектування
- Поділ розробників на "perfect" та "code monkeys"
Модифікації [ред.]
Так як цей метод слабо підходить для розробки саме ПЗ, частіше використовують його модифікації.
Найвідоміша модифікація - Sashimi. Названа так через японську страву сашимі. Це суші нарізане і сервіроване так, що складені рядочком кусочки накладаються один на одного.
В моделі розробки перекриваються фази. Тому водоспад стає більш схожим на сашімі.
Зноски [ред.]
- ↑ Royce, Winston (1970), "Managing the Development of Large Software Systems"