Metodologia Waterfall vs RUP
Esistono numerose metodologie di sviluppo software diverse utilizzate nell'industria del software oggi. Il metodo di sviluppo a cascata è uno dei primi metodi di sviluppo software. La metodologia di sviluppo del software Waterfall è un modello sequenziale in cui ogni fase viene completata completamente e seguita in un ordine fisso. RUP (Rational Unified Process) è un framework di processo adattabile di metodologie di sviluppo software iterativo. RUP affronta diverse critiche allo sviluppo di Waterfall come la rigidità.
Cos'è la metodologia Waterfall?
La metodologia a cascata è uno dei primi modelli di sviluppo software. Come suggerisce il nome, è un processo sequenziale in cui il progresso scorre attraverso diverse fasi dall'alto verso il basso, analogamente a una cascata. Le fasi del modello Waterfall sono l'analisi dei requisiti, la progettazione, lo sviluppo, il test e l'implementazione. Gli analisti aziendali (o gli stessi programmatori se si tratta di una piccola organizzazione) conducono la fase di analisi ottenendo i requisiti di sistema e di business dal cliente del progetto. Quindi, gli architetti del software (o sviluppatori di software senior) escogitano documenti di progettazione che descrivono la struttura e i componenti del sistema proposto. Quindi gli sviluppatori junior eseguono la codifica utilizzando i documenti di progettazione. Dopo il completamento dello sviluppo, il prodotto viene consegnato al team di test per i processi di test e verifica. Infine, il prodotto viene implementato (o integrato) presso la sede del cliente e il progetto viene firmato. La cosa importante da notare qui è che ogni fase è completamente completata prima di passare alla fase successiva. Questo modello era il risultato diretto dell'adattamento del metodo di sviluppo orientato all'hardware (che si trova nelle industrie manifatturiere e delle costruzioni), in un momento non esisteva un modello formale per lo sviluppo del software.
Cos'è RUP?
RUP belongs to the family of iterative software development methodologies. It was developed by Rational Software Corporation (of IBM) in 2003. It is actually an adaptable process framework (not a single concrete process), that can be customized by the development organization according to their needs. Slightly similar to waterfall, it has fixed phases as inception, elaboration, construction and transition. But unlike waterfall, RUP is an iterative process. The three strategies captured by RUP are a customizable process that guides development, automated tools to expedite the process, and services that help to adopt process and tools faster. These strategies intern captures the six best practices of software engineering (iterative development, managing requirements, component based architecture, visual software models, continuous verification and management of changes).
Qual è la differenza tra la metodologia Waterfall e il RUP?
Sebbene la metodologia Waterfall e il RUP abbiano definito fasi fisse, ci sono differenze fondamentali tra questi due modelli. La deferenza principale è che mentre la metodologia Waterfall è chiaramente un processo sequenziale con passaggi prescritti in cui la fase corrente viene completata prima di passare alla fase successiva, RUP è un processo iterativo. A differenza della metodologia a cascata, RUP sviluppa il prodotto in più fasi sulla base del feedback degli azionisti. Poiché ogni iterazione RUP produce una versione eseguibile, i clienti ottengono vantaggi molto prima di Waterfall. Infine, la metodologia Waterfall è un processo concreto prescrittivo, mentre RUP è un framework adattabile di processi software.