introduzione
Il modello sequenziale lineare dell'ingegneria del software, a volte noto come "ciclo di vita tradizionale" o "modello a cascata", il modello sequenziale lineare propone metodi sistematici e sequenziali di sviluppo del software (sebbene il primo modello a cascata proposto da Winston Royce [Roy70] supporti un ciclo di feedback, la maggior parte delle organizzazioni che utilizzano il modello di processo sono considerate strettamente lineari), a partire dal livello di sistema, quindi analisi, progettazione, codifica, test e manutenzione.
Modello di pensiero di base
The core idea of the waterfall model is to simplify the problem according to the process, and the implementation and design of the function will be separated, which is easy to divide and cooperate. Separate logic implementation with physical implementation. The software life cycle is divided into six basic activities such as planning, demand analysis, software design, program writing, software testing and operation maintenance, and specify their own fixed order, such as waterfall, step by step. whereabouts.
Il modello a cascata è il primo modello di sviluppo software che svolge un ruolo importante nell'ingegneria del software, che fornisce la struttura di base per lo sviluppo del software. Il processo consiste nel ricevere l'oggetto di lavoro dell'evento come input dall'attività precedente e utilizzare questo input per implementare il contenuto dell'evento da completare per fornire i risultati del lavoro dell'evento e trasmetterlo all'attività successiva come output . Allo stesso tempo, l'implementazione di questa attività viene rivista. Se confermi, prosegui con l'evento successivo; altrimenti restituire l'evento davanti, ancora di più. Il modello a cascata è inutile per gli elementi attualmente in modifica.
Sistemi / Ingegneria dell'informazione e modellazione
Poiché il software è sempre un componente di sistema (o aziendale) di grandi dimensioni, è necessario stabilire le esigenze di tutti i componenti di sistema, quindi alcuni sottoinsiemi vengono assegnati al software. L'intero sistema è basato su software come altri componenti come interfacce hardware, persone e database. L'ingegneria e l'analisi del sistema includono la domanda di raccolta a livello di sistema, nonché una piccola parte dell'analisi e della progettazione del livello superiore. I progetti di informazione includono la domanda di business strategico e settori di attività.
Analisi della domanda di software
Il processo di raccolta della domanda è particolarmente centralizzato nel software. Per comprendere l'essenza del programma, l'ingegnere del software ("Analista") deve comprendere le informazioni del software e la funzionalità, il comportamento, le prestazioni e l'interfaccia della domanda. I requisiti di sistema e i requisiti software sono soggetti a documentazione e revisione con gli utenti.
Progettazione: la progettazione del software è in realtà un processo in più fasi, incentrato sulle quattro proprietà completamente diverse del programma: struttura dei dati, architettura del software, rappresentazione dell'interfaccia e dettagli del processo (algoritmo). Il processo di progettazione converte la domanda in rappresentazione del software e la sua qualità può essere valutata prima della codifica. Come domanda, anche la progettazione documenta e fa parte della configurazione del software.
generazione del codice: il design deve essere convertito in una forma leggibile dalla macchina. Questo passaggio consiste nel completare questa attività. Se il disegno è stato espresso in dettaglio, la generazione del codice può avvenire automaticamente.
Test: una volta generato un codice, è possibile avviare il test del programma. Il processo di test si concentra sulla logica interna del software - garantisce che tutte le istruzioni vengano testate, così come le funzionalità esterne - ovvero avvia il test per rilevare errori e garantire che l'input definito possa produrre lo stesso output previsto.
Manutenzione: il software vuole inevitabilmente essere modificato dopo la consegna (una possibile eccezione è il software incorporato). Le modifiche si verificheranno nei seguenti casi: Quando si verifica un errore; quando il software deve adattarsi ai cambiamenti dell'ambiente esterno (ad esempio, a causa del nuovo sistema operativo o delle periferiche); o quando l'utente desidera migliorare la funzione o le prestazioni. La manutenzione del software ripete le fasi precedenti, le differenze riguardano le procedure esistenti, non i nuovi programmi.
Il sequenziale e la dipendenza tra il modello sequenziale lineare
1) La sequenza e la dipendenza tra le fasi, il progetto viene eseguito in un certo ordine dall'inizio alla fine; il modello a cascata è guidato da documenti, ciascuno La fase non è interattiva.
2) La valutazione della fase rigorosa deve prima una valutazione rigorosa per entrare nella fase successiva.
3) Occorre fare chiaramente riferimento al periodo iniziale di sviluppo.
4) Lungo ciclo di sviluppo, rischio.
Svantaggi del modello sequenziale lineare
1) La maggior parte dei progetti reali è difficile da eseguire nell'ordine indicato in questo modello, e questo modello è iterativo, il che è facile. Provoca un grande caos da piccoli cambiamenti.
2) In molti casi, il cliente ha difficoltà a esprimere la domanda reale, e questo modello è richiesto, questo modello non è "benvenuto" per avere un problema di sicurezza.
3) Il cliente desidera attendere fino alla fine del ciclo di sviluppo per vedere la versione di prova del programma in esecuzione e, quando si riscontra un grosso errore, potrebbe causare il panico del cliente e le conseguenze del risultato potrebbero essere catastrofiche . Di.
4) incontra spesso il compito in attesa che gli altri membri completino la loro dipendenza all'inizio e alla fine del processo, è possibile impiegare molto tempo rispetto al tempo di sviluppo. Per "bloccare lo Stato".
Vantaggi del modello di sequenza lineare
1) Fornisce un modello che rende i metodi di analisi, progettazione, codifica, test e supporto comuni in questo modello. guida.
2) Sebbene ci siano molti difetti, è molto meglio che presentare uno stato casuale nello sviluppo del software.