吃什么去胃火口臭| 补肾壮阳吃什么效果好| 恋足癖是什么意思| 急性会厌炎吃什么药| 载脂蛋白b偏高是什么意思| 什么季节补钙效果最好| 什么泡茶好喝| 月经期间吃什么水果| 造影是什么手术| 天蓝色是什么颜色| 为什么屁多| 治便秘吃什么| 2013年五行属什么| pks是什么意思| 舌苔厚发黄是什么原因| 拉稀吃什么药最有效果| 英雄难过美人关是什么意思| 什么是糖尿病| 痛风可以吃什么水果| 色弱和色盲有什么区别| 细菌性肠炎是什么原因引起的| 师傅和师父有什么区别| 什么是梨形身材| 葡萄代表什么生肖| 69年属什么| 善太息是什么意思| 呼吸道感染用什么药| 硫酸是什么| 菲字五行属什么| 顽固性失眠吃什么药| 什么叫介入手术| px是什么单位| 咳嗽干呕是什么原因| 02年的马是什么命| 萃是什么意思| 硫酸镁注射有什么作用| 除外是什么意思| 昶字五行属什么| 燕然未勒归无计的上一句是什么| 水果之王是什么水果| 油是什么意思| 2005年属什么生肖| 今天过生日是什么星座| 花木兰是什么剧种| 阴虚火旺有什么表现症状| 李克勤属什么生肖| 孕妇流鼻血是什么原因| 布朗尼是什么| 肤浅什么意思| 不经意间是什么意思| 玫瑰花茶和什么搭配好| 盆腔炎用什么消炎药好| 蚯蚓是什么动物| 眼科属于什么科| 生是什么意思| 敏感是什么意思| 脖子出汗多是什么原因女人| 又什么又什么的花| 手脱皮用什么药膏最好| 什么样的人容易得心梗| 珍珠疹是什么原因引起的| 死精吃什么能调理成活精| 执念是什么意思| 疏导是什么意思| 喝羊奶有什么好处| 脐带绕颈有什么症状| 见红是什么意思| 什么心竭什么| 唐朝为什么灭亡| 游走性疼痛挂什么科| mario是什么意思| 食管炎是什么原因引起的| 嗓子沙哑吃什么药| 桃子不能和什么一起吃| gn是什么颜色| 三月三号是什么星座| 吃华法林不能吃什么| 什么时候立春| 分数是什么| 牛肉烧什么好吃| aupres是什么牌子化妆品| 家奴是什么生肖| 恩五行属性是什么| 右手小指戴戒指什么意思| 月经迟迟不来是什么原因| 嘴唇没有血色是什么原因| 事不过三是什么意思| 短效避孕药是什么| 莫逆之交什么意思| 尿素氮偏低是什么意思| leonardo是什么牌子| 生蚝吃多了有什么危害| 梦到男朋友出轨了预示什么意思| 梦见碗是什么意思| 中老年喝什么奶粉好| 属牛幸运色是什么颜色| 质子是什么| 七月五日是什么星座| 做梦抓鱼什么意思周公解梦| 什么的森林| 唾液分泌过多是什么原因| 苹果什么时候出新手机| 孩子吃什么容易长高| 蝴蝶兰什么时候开花| 为什么一同房就有炎症| 老舍有什么称号| 人得布病什么症状| 马赫是什么意思| 苏打水是什么水| 女人吃什么能活血化瘀| 男人额头凹陷预示什么| 1966年属什么| 肺型p波是什么意思| 今天什么生肖冲什么生肖| 此刻朋友这杯酒最珍贵是什么歌| 胰腺是什么器官| 运动有什么好处| 豆奶不能和什么一起吃| 青蛙像什么| 俄罗斯用什么货币| 臣字五行属什么| 女士喝什么茶叶对身体好| 8023是什么意思| 着床是什么意思| bid什么意思| 五味是什么| oc是什么意思| 派对是什么意思| 介质是什么| 八月2号是什么星座| 小确幸是什么意思| 总是流鼻血是什么原因| 能人是什么意思| 什么石什么鸟| 高危型hpv阳性是什么意思| 赭石色是什么颜色| 为什么早上起来口苦| 鸡肉配什么菜好吃| 1月23日是什么星座| 梦见自己怀孕大肚子是什么预兆| 市政协主席是什么级别| 手背肿是什么原因| 猫咪踩奶是什么意思| 容祖儿老公叫什么名字| 5.22是什么星座| 性生活什么意思| 向日葵的花语是什么| 多汗症吃什么药| 幽门螺旋杆菌是什么意思| 狸是什么动物| 孕早期吃什么有利于胎心胎芽发育| 尿常规挂什么科| 丁字是什么意思| 生是什么意思| 中风吃什么药好| 牛子什么意思| 鬼打墙什么意思| kenzo属于什么档次| 八字桃花是什么意思| rv是什么品牌| 蕈是什么意思| 画蛇添足什么意思| 嘴巴右下角有痣代表什么| 高锰酸钾治疗男性什么病| jnby是什么牌子| EV是什么| 小孩长得慢是什么原因| 河童是什么| 什么药膏可以去黑头| 经行是什么意思| 比目鱼长什么样| 试管婴儿是什么意思| 酸萝卜别吃什么意思| 小儿惊风是什么症状| 阑尾炎可以吃什么| 血脂高吃什么药| 道心是什么意思| 白羊座后面是什么星座| 乙肝五项第二项阳性是什么意思| 口腔医学是什么| 国企属于什么编制| 高血脂吃什么食物最好| 阴虚内热是什么意思| 心脏疼痛挂什么科| 智字五行属什么| 愚公移山是什么故事| 出汗有盐霜是什么原因| 天公作美是什么生肖| 巴沙鱼为什么不能吃| 尿酸高能吃什么肉| 澳门有什么好玩的| 眼屎多用什么眼药水| 势力是什么意思| 山海经讲的是什么| 胃萎缩是什么原因| 吃什么补血贫血| 白鳍豚用什么呼吸| 过敏擦什么药膏好得快| 美国为什么打越南| 97年属牛的是什么命| 出生证编号是什么| 手球是什么运动| 午马是什么意思| 为什么早上起来血压高| 吃刺猬有什么好处| 烧心吃什么| 宝宝多吃什么蔬菜好| 头晕是什么病的前兆| 月经很少什么原因| 梦见猫什么意思| 女性婚检都检查什么| 经常想吐恶心是什么原因| 流口水是什么病| 盲人按摩有什么好处| 烂脚丫用什么药能治除根| 涉水是什么意思| 天天喝酒会得什么病| 梦见马是什么意思| 荒芜是什么意思| 误食干燥剂有什么危害| 铁补多了有什么副作用| 献血浆有什么好处| 出国用什么翻译软件好| 糖尿病人不能吃什么水果| 龙日冲狗煞南是什么意思| 女儿取什么名字好听| rdw是什么意思| 5月17日是什么星座| 女人右眼跳预示着什么| 睾丸疼挂什么科| 登革热是什么症状| 后脑勺麻木是什么征兆| 手信是什么| 拜把子是什么意思| 心脏房颤吃什么药好| 前列腺在哪里男人的什么部位| 什么叫尊重| 孙权和孙策是什么关系| 舌苔发黄是什么原因引起的| 为什么叫基围虾| 吃青提有什么好处| 什么食物含dha| 甲状腺是什么病严重吗| 尾巴翘上天是什么意思| 糜烂性胃炎有什么症状| 小儿病毒性感冒吃什么药效果好| 08属什么生肖| 哺乳期抽烟对宝宝有什么影响| latex是什么| 甘肃有什么好吃的| 胃癌早期有什么症状| bcc是什么意思| 什么组词| 郫县豆瓣酱能做什么菜| 静推是什么意思| 大满贯什么意思| 女人打呼噜是什么原因| 女生月经迟迟不来是什么原因| 梅毒检查挂什么科| 仓鼠是什么科动物| 身上长红点是什么原因| 月经量多是什么原因引起的| 为什么脚会脱皮| 眼睛蒙蒙的是什么原因| 百度Vai al contenuto

央行将开展银行联网核查失效居民身份证信息试点工作

Da Wikipedia, l'enciclopedia libera.
百度 抓创新,切实激发机关党建内生动力积极推进机关党建理念创新。

Nella gestione dei progetti, si parla di approccio waterfall (a cascata in italiano) o predittivo quando i requisiti del progetto e del prodotto vengono definiti, raccolti e analizzati a priori, ovvero all’inizio del progetto [1]. è contrapposto agli approcci agili e adattivi [1].

Storicamente, è stato il primo approccio di project management a essere formalizzato: inizialmente nelle pratiche militari dell'esercito statunitense[2], e, successivamente, in standard internazionali come il PMBOK. è stato largamente adottato in vari ambiti e settori fino agli anni 2000, quando l'avvento delle metodologie agili ne ha evidenziato i limiti per determinati contesti. Oggi, rimane l’approccio di riferimento per i grandi progetti di ingegneria edile, civile ed elettrica, mentre nel settore informatico si tendono a preferire approcci agili.

I primi riscontri ben documentati dell’uso di approcci predittivi risalgono agli anni 20-40. Cicli di progetto strutturati erano già impiegati, seppur in modo informale, in ambito militare e ingegneristico durante la Seconda guerra mondiale e la Guerra Fredda, soprattutto in progetti complessi e ad alto rischio, come quelli aerospaziali e di difesa. La prima formalizzazione esplicita di questo tipo di approccio risale al 1956, grazie al lavoro di Herbert D. Benington, presentato in occasione di un simposio dell'U.S. Navy sulla gestione del progetto SAGE (Semi-Automatic Ground Environment), un avanzato sistema di difesa aerea[2]. Sebbene il termine "waterfall" non fosse ancora in uso, il modello da lui descritto rappresenta una delle prime descrizioni formali di un processo di sviluppo sequenziale a fasi.

Nell'ingegneria del software, il ciclo di vita a cascata fu il primo modello di ciclo di vita del software, sviluppato a seguito della software crisis. La sua teorizzazione rappresenta innanzitutto un importante mutamento di prospettiva nella pratica dello sviluppo del software, che viene per la prima volta concepita come processo industriale, cioè come una sequenza di sottoattività (tutte con relative documentazioni e controllo), anziché come attività "artigianale" (il cosiddetto approccio code and fix, che si potrebbe tradurre in italiano come programmazione per tentativi ed errori). Il ciclo di vita a cascata ebbe un enorme successo negli anni settanta ed è quello che ancora oggi viene più spesso associato alla programmazione procedurale e strutturata.

A partire almeno dagli anni ottanta il modello è stato soggetto a profonde critiche e revisioni, soprattutto dovute all'evoluzione del software stesso e dei linguaggi di programmazione. Benché gran parte delle critiche a questo modello siano oggi universalmente accettate, il ciclo di vita a cascata continua a rimanere un punto di riferimento importante, in sostanza un modello "canonico" rispetto al quale vengono spesso descritte le "variazioni" moderne; ed è spesso il primo modello di sviluppo software che si insegna agli studenti. Tra le nuove metodologie di sviluppo del software ci sono il modello a spirale e le metodologie agili.

I capisaldi sono:

  • il processo di sviluppo è diviso in fasi sequenziali;
  • ogni fase produce un output che è usato come input per la fase successiva;
  • ogni fase del processo viene documentata.

Il modello a cascata tradizionale prevede le seguenti fasi:

Nel contesto di una specifica organizzazione, il modello a cascata può essere ridefinito con varianti specifiche. Inoltre, un'organizzazione può formalizzare ulteriormente il processo definendo standard e imponendo vincoli per quanto riguarda la natura, il formato, la struttura e/o i contenuti dei documenti prodotti nelle varie fasi (i cosiddetti deliverable, consegnabili), tipicamente allo scopo di consentire un controllo più rigoroso sullo stato di avanzamento del progetto e sulla qualità del lavoro svolto.

Nell'ingegneria del Software

[modifica | modifica wikitesto]

In ingegneria del software, il modello a cascata (waterfall model in inglese) o ciclo di vita a cascata (waterfall lifecycle) è il più tradizionale modello di ciclo di vita del software. Secondo questo modello, il processo di realizzazione del software è strutturato in una sequenza lineare di fasi o passi[3], che comprende:

Questo modello riprende la sequenza di passi tipica della produzione manifatturiera, e fu il primo a essere applicato quando lo sviluppo del software cominciò a essere concepito come attività industriale.[4] Il modello è stato progressivamente abbandonato dall'industria del software, ma rimane un importante riferimento storico.

Studio di fattibilità

[modifica | modifica wikitesto]

è la prima fase. Scopo

  • Decidere se debba essere intrapreso un nuovo sviluppo.

Attori coinvolti

  • Cliente/Committente
  • Organizzazione aziendale

Output

  • Un documento che presenti diversi scenari e soluzioni insieme a una discussione dei compromessi in termini di costi previsti e benefici.

Svolgimento

  • Interazione tra gli attori
  • Ricerca delle soluzioni esistenti

Problemi principali

  • Analisi spesso svolta sotto pressione e in fretta
  • Analisi dei costi a volte imperfetta con continui rifacimenti
  • Decisioni premature che ostacolano lo sviluppo successivo

Analisi dei requisiti

[modifica | modifica wikitesto]

Input

  • Il documento di studio di fattibilità

Scopo

  • Identificazione e descrizione dei requisiti, ossia delle caratteristiche del sistema

Attori coinvolti

  • Cliente/Committente
  • Sviluppatori
  • Organizzazione aziendale

Output

  • Un documento che descrive le caratteristiche del sistema e che colga le esigenze dell'utente ma sia anche esaustivo per il progettista. Tale documento, per mettere d'accordo le parti, deve essere facilmente comprensibile, preciso, completo, coerente e non ambiguo, inoltre facilmente modificabile;
  • Manuale utente: in alcuni casi può essere utile una versione preliminare in cui si spiega come l'utente interagirà con il sistema;
  • Piano di test: non è indispensabile, ma si può decidere in questa fase insieme all'utente.

Svolgimento

  • Interazione tra gli attori
  • Più il sistema è innovativo più è necessario interagire
  • La documentazione va descritta secondo degli standard e delle notazioni specifici

Problemi principali

  • Assenza di linguaggio comune tra gli attori
  • Requisiti spesso poco chiari
  • Impossibilità di considerare tutti i requisiti e di produrre un lavoro completo

Progettazione

[modifica | modifica wikitesto]

Input

  • Il documento di specifica dei requisiti

Scopo

  • Definire l'architettura del sistema

Attori

  • Chief Software Architect/Software Architect

Output

  • Definizione della struttura di massima (architettura di alto livello)
  • Definizione delle caratteristiche dei singoli componenti (moduli)

Svolgimento

  • Individuazione dei componenti necessari e delle loro caratteristiche

Problemi

  • Si devono prendere molte decisioni
  • Non tutte le strutture sono uguali
  • Non sempre le scelte sono ben definite

Codifica e test di modulo

[modifica | modifica wikitesto]

Input

  • I documenti di progetto

Scopo

  • Implementare i moduli

Attori

  • Sviluppatori

Output

  • Moduli implementati

Svolgimento

  • Scrittura del codice
  • Test di modulo
  • Controllo di aderenza agli standard

Problemi

  • Scrittura del codice

Integrazione e test di sistema

[modifica | modifica wikitesto]

Input

  • I moduli codificati

Scopo

  • Controllare che i moduli presi a uno a uno funzionino
  • Controllare che una volta messi assieme i moduli continuino a funzionare

Attori

  • Sviluppatori

Output

  • Il sistema funzionante
  • Tecniche di verifica e validazione (alpha test)

Problemi

  • Diversi tipi di problemi soprattutto connessi a una cattiva analisi dei requisiti
  • Tutto ciò che accade dal momento della consegna del sistema alla sua dismissione
  • Verifica del software da parte degli utenti (beta test)
  • è una fase molto lunga

Così semplificato, il ciclo di vita classico può essere rappresentato come:

  • Analisi
  • Design
  • Codifica
  • Integrazione
  • Test
  • Rilascio

da cui il richiamo alla cascata che si trova nel nome.

A titolo di esempio, si considera il ciclo di vita definito con le MIL-STD-2167 da parte dell'United States Department of Defense (DoD, il Ministero della Difesa statunitense) per il linguaggio Ada (altro prodotto del DoD).

Le MIL-STD-2167 dividono il ciclo di vita del software nelle seguenti 6 macro attività:

  • ANALISI:
    • Analisi dei requisiti: definisce cosa viene richiesto in termine di funzioni, senza specificare come esse devono essere realizzate
    • Progetto preliminare: segue i requisiti, sviluppa un approccio al software che comprende anche modelli matematici, diagrammi di flusso funzionali e procedure di collaudo. In questa fase si definiscono la struttura generale e le operazioni del sistema, indicando anche le relazioni tra i principali blocchi funzionali (moduli)
  • PROGETTAZIONE:
    • Progetto esecutivo: effettiva scomposizione gerarchica e dettagliata di tali moduli; questa scomposizione continua fino a che un'ulteriore scomposizione porterebbe al codice del programma
  • IMPLEMENTAZIONE:
    • Codifica e verifica: scrittura e verifica dei programmi partendo dal progetto esecutivo e utilizzando le procedure di verifica
    • Computer Software Code (CSC): integrazione e verifica delle unità comprese nei singoli sottosistemi
    • Convalida dell'integrazione del CSC

Il modello ha giocato un ruolo importante nello sviluppo del software per superare i limiti del processo del “code and fix” e infine ha fissato due concetti:

  • Il processo di sviluppo del software deve essere soggetto a disciplina e pianificazione;
  • L'implementazione del prodotto deve essere rimandata fino a quando non sono perfettamente chiari gli obiettivi.

Il maggior pregio di questo metodo di lavoro è certamente la semplificazione del controllo dell'andamento del progetto tramite la suddivisione del ciclo di vita in fasi successive ben definite. Le diverse metodologie che adottano questo ciclo di vita si distinguono essenzialmente per la suddivisione e specificazione delle fasi in sottofasi più elementari, nella definizione di standard di documentazione e nella individuazione di momenti di verifica al termine di ciascuna attività (milestone). Per ottimizzare il ciclo di vita, la scomposizione delle fasi in sottofasi persegue due obiettivi:

  • assegnare a ciascuna fase la soluzione di problematiche specifiche
  • rendere, per quanto possibile, le fasi indipendenti allo scopo di poterne parallelizzare le attività

Benché l'adozione di questi principi appaia estremamente produttiva, la loro applicazione pratica ha come effetto collaterale, soprattutto per i progetti di grandi dimensioni, un pericoloso scollamento fra le diverse attività, sia per le difficoltà di coordinamento che per la difformità delle metodologie e dei formalismi specialistici adottati. Ad esempio, normalmente l'individuazione delle strutture dati e delle funzionalità del sistema sono affrontate con metodologie diverse e, soprattutto per i progetti di grandi dimensioni, contemporaneamente e separatamente da gruppi di lavoro differenti. Nel primo caso i risultati sono formalizzati con uno Schema Entità-Associazione (ER o Entity-Relationship diagram nella dizione anglosassone) nel secondo con un metodo di scomposizione funzionale. Solo quando queste due attività terminano viene avviata un'ulteriore attività di armonizzazione dei rispettivi risultati.

Un ulteriore problema di questa impostazione deriva dalla necessità di terminare completamente tutta la fase di analisi dei requisiti e progetto dell'applicazione per cominciare la programmazione e quindi verificarne sul campo le conclusioni.

Il modello, quindi, è una semplificazione della realtà che non trova piena applicazione in quanto vanno rispettati tre principi:

  • Linearità: spesso si hanno cicli di feedback (il caso dell'alpha e del beta testing) per la correzione degli errori. Tale feedback deve essere lineare e, quindi, non si possono effettuare salti a ritroso ma vanno ripercorse tutte le fasi in maniera lineare;
  • Rigidità: ogni fase viene congelata quando si passa alla fase successiva, per cui non è possibile un'interazione tra clienti e sviluppatori durante il ciclo di vita dopo la parte iniziale;
  • Monoliticità: tutto il modello è orientato alla singola data di rilascio che spesso si pone a mesi o anni dopo l'inizio della prima fase, per cui se vengono commessi eventuali errori o cambiano i requisiti, questi verranno implementati dopo parecchio tempo e comunque alla fase di consegna seguirà subito un altro adattamento perché il software sarà già obsoleto.

I maggiori problemi sono i seguenti:

  • è difficile stimare le risorse e i costi in maniera accurata finché non sia stata svolta almeno la prima fase di analisi;
  • La specifica dei requisiti produce un documento scritto che vincola il prodotto da sviluppare: ciò non sempre soddisfa le esigenze del cliente, perché si tratta pur sempre di specifiche basate su un documento inanimato che non sempre aiuta nel definire le esigenze (che, invece, appaiono subito chiare dopo il primo rilascio del software). Inoltre, tale documento deve essere completo e chiaro prima di procedere allo sviluppo, ma non sempre ciò è possibile;
  • L'utente spesso non conosce tutti i requisiti dell'applicazione perché non può conoscerli, motivo per cui non sempre il documento dei requisiti è completo e, quindi, si ha un passaggio alla fase successiva con documentazione poco chiara;
  • Il modello obbliga a usare standard pesantemente basati sulla produzione di una data documentazione in determinati momenti, per cui il lavoro rischia di essere burocratizzato.

Si comprende come gli alti costi del software siano spesso dovuti al modello a cascata, proprio a causa delle specifiche poco complete e ai molti interventi successivi per introdurre funzionalità non previste in partenza. Capita, quindi, che le pecche del modello vadano a ricadere sulla manutenzione, causandone costi crescenti, o che, al contrario, si operi con una manutenzione sommaria producendo un software con un'implementazione che diverge dalle specifiche dei requisiti.

  1. ^ a b Project Management Institute, A Guide to the Project Management Body of Knowledge - Seventh Edition, 2021.
  2. ^ a b United States, Navy Mathematical Computing Advisory Panel, Symposium on advanced programming methods for digital computers, [Washington, D.C.], Office of Naval Research, Dept. of the Navy, 29 giugno 1956, OCLC 10794738.
  3. ^ Fasi del modello a cascata (archiviato dall'url originale il 14 ottobre 2015).
  4. ^ Herbert D. Benington, Production of Large Computer Programs. IEEE Annals of the History of Computing (IEEE Educational Activities Department) 5 (4), 1983

Voci correlate

[modifica | modifica wikitesto]

Altri progetti

[modifica | modifica wikitesto]
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica
中国中铁是做什么的 皮蛋和什么不能一起吃 放化疗是什么意思 妞字五行属什么 孕酮低吃什么好提高
风情万种的意思是什么 舌头热灼是什么原因 姓黑的都是什么族 价值是什么 扫把星什么意思
转氨酶偏高有什么症状 advil是什么药 梦见前男友结婚了是什么征兆 尿结晶高是什么原因 胃萎缩是什么原因
类风湿不能吃什么 les什么意思 静夜思是什么季节 左侧卵巢显示不清是什么意思 实质性结节是什么意思
八大菜系之首是什么菜hcv8jop4ns2r.cn 什么动物睡觉不闭眼睛hcv7jop4ns8r.cn 尿微量白蛋白高是什么意思qingzhougame.com 出什么什么什么hcv8jop6ns5r.cn 流局是什么意思cl108k.com
前列腺炎吃什么中药hcv9jop5ns4r.cn 九二共识是什么adwl56.com 农历9月14日是什么星座hcv9jop7ns4r.cn 猫发出咕噜咕噜的声音是什么意思hcv8jop6ns8r.cn 小儿疳积是什么意思hcv8jop1ns4r.cn
头孢什么时候吃hcv7jop6ns9r.cn 菊花茶和枸杞一起泡水有什么好处hcv7jop9ns5r.cn 条索影是什么意思hcv7jop5ns3r.cn 伏脉常见于什么病hcv8jop2ns6r.cn 1898年属什么生肖hcv8jop1ns1r.cn
老抽和生抽有什么区别hcv9jop3ns7r.cn 黄连素又叫什么名字xinmaowt.com 拔罐颜色深浅代表什么mmeoe.com 吃阿胶对女人有什么好处hcv9jop8ns3r.cn 白癜风不能吃什么hcv7jop6ns9r.cn
百度