🥔 Ziemniak w Dresie

Bazy w dresie #2.3 | Model ewolucyjny

📂 MySQL

Co to model ewolucyjny


Model ewolucyjny (ang. evolutionary model) to podejście do tworzenia oprogramowania, w tym baz danych, które zakłada stopniowy, iteracyjny rozwój projektu. Zamiast realizować cały system od początku do końca w jednej sekwencji, jak w modelu kaskadowym, system buduje się etapami — każda wersja jest rozwijana, testowana i ulepszana na podstawie opinii użytkowników oraz nowych wymagań.

W kontekście baz danych oznacza to, że projekt zaczyna się od prostego modelu danych, który z czasem jest rozszerzany i modyfikowany. Struktura tabel, relacje i zależności mogą być dostosowywane w miarę, jak rośnie zrozumienie potrzeb użytkowników. Model ewolucyjny pozwala szybciej reagować na zmiany i lepiej dopasować bazę danych do rzeczywistych zastosowań, choć wymaga częstszej refaktoryzacji i kontroli spójności danych.

Jak wygląda


Tak wygląda

  • Wersji pośrednich będzie tyle, ile będzie trzeba zmieniać w drugim etapie (na życzenie klienta)
  • Klient jest angażowany w prace. Jeśli wersja pośrednia będzie dla klienta wystarczająco dobra, to staje się ona wersją końcową

Zalety


✅✅✅

  1. Dobry dla małych systemów/projektów oraz szybki start projektu - Z powodu zazwyczaj ograniczonych wymagań oraz elementów w czasie tworzenia tej bazy, nadaje się on idealnie do małych projektów
  2. Niski koszt błędów - Zrobisz błąd? Szybko znajdziesz i rozwiązasz... a to mniej zmarnowanego czasu
  3. Tolerancja dla słabo zediniowanych wymagań - nie trzeba mocno szczegółowo opisywać co musi mieć dana baza danych

Wady


❌❌❌

  1. Trudności z harmonogramem - raz projekt będzie trwał 2 dni, a raz 3 miesiące. Głównie z powodu, że wersi podocznych może być legion, jak klientowi się dana baza nie spodoba i doda/usunie kolejne wymagania
  2. Trudności z określeniem poziomu zaawansowania projektu - znów wina leży po werjsach podobnych i od widzimi się klienta
  3. System może być często w złej strukturze - zazwyczaj będzie, dlatego się on idealnie nadale dla małych projektów, gdzie struktura nie gra roli