枫叶的花语是什么| 6月什么星座| 嘴巴淡而无味是什么原因| 阴道b超检查什么| 螨虫用什么药可以杀死它| 官杀是什么意思| 男人阴虚吃什么药最好| 为什么会出现彩虹| 什么是违反禁令标志指示| 撕脱性骨折是什么意思| 兔子的眼睛是什么颜色| 黄色配什么颜色| 吃坏东西肚子疼吃什么药| 脚臭用什么药| 马超是什么生肖| 血白细胞高是什么原因| 原始心管搏动是什么意思| 叶酸片有什么作用| 为什么要做包皮手术| 强化灶是什么意思| 拔牙为什么要验血| 闭关是什么意思| 六味地黄丸有什么副作用吗| 阴中求阳是什么意思| cbb电容是什么电容| 213是什么意思| 手脚心热是什么原因| 血瘀吃什么药| 炸薯条用什么淀粉| 大便黑色什么原因| 糖宝是什么意思| 白带多是什么原因引起的| ria是什么意思| 虎都男装属于什么档次| daddy什么意思| 肌酸激酶是什么| 吃了小龙虾不能吃什么| 媚字五行属什么| 湿气太重吃什么| 动物园有什么动物| 女性排卵期一般在什么时候| 爱出汗挂什么科| 吃什么降血压| 直销是什么意思| 玉米淀粉可以用什么代替| 秦皇岛有什么特色美食| 什么紫| 纪梵希属于什么档次| 老过敏是缺什么维生素| 乳房疼痛吃什么药| 远香近臭是什么意思| 外阴白斑瘙痒抹什么药| 为什么科比叫黑曼巴| 绿豆芽炒什么好吃| 甲减喝什么药| 蜻蜓点水是什么行为| 自欺欺人什么意思| 晚上口苦是什么原因引起的| 嘴唇是紫色的是什么原因| 海鲜都有什么| 陈醋和香醋有什么区别| 方言是什么意思| 标准是什么意思| 血糖用什么字母表示| 慢阻肺吃什么药最有效最好| 夏天为什么不能喝中药| 晚上尿多什么原因| 内伤是什么意思| lc是什么意思| 淡泊名利是什么意思| 喝什么饮料对身体好| 九月初四是什么星座| 女人梦见掉头发是什么征兆| 鹿角粉有什么功效和作用| 非特异性阴道炎是什么意思| 焱加木念什么| 外阴白斑擦什么药| 三言两语是什么生肖| 钾是什么东西| 母后是什么意思| 尿检蛋白质弱阳性是什么意思| 大叔是什么意思| 白细胞低有什么危害| 前列腺彩超能查出什么| 肛门里面痒是什么情况| 岍是什么意思| 入殓师是什么意思| 舌头边疼是什么原因| 痛风吃什么水果| 眼前的苟且是什么意思| 布偶猫长什么样| 唵嘛呢叭咪吽是什么意思| 麦字五行属什么| 脆皮鸭什么意思| 自闭症是什么病| 阑珊是什么意思| 肋膈角锐利是什么意思| 舌苔发白是什么病的前兆| 羊肉不放什么调料| 什么人容易得白肺病| 秉承是什么意思| 既往病史是什么意思| 腺癌是什么原因引起的| 八仙过海开过什么生肖| 什么水果最好吃| 鼻子下面长痘什么原因| 家的意义是什么| 嘴唇裂口是什么原因| 龙和什么属相相克| 什么是抑郁症| sds是什么| 动物的耳朵有什么作用| 食物中毒什么症状| 月经期间可以喝什么茶| 什么是碳酸饮料| 主理人什么意思| 人老是犯困想睡觉是什么原因| 经期上火了吃什么降火| 孕妇缺营养吃什么补| 扁桃体发炎是什么引起的| rgp是什么| 红菜是什么菜| 什么什么多腔| 什么是性激素| 荷花的花语是什么| 腱鞘炎什么症状| 下午1点是什么时辰| 不造是什么意思| 促甲状腺激素偏高是什么意思| 肌酐300多属于什么期| 杨枝甘露是什么做的| 检查包皮挂什么科| 男人吃什么能延时| 屁特别多是什么原因| 但求无愧于心上句是什么| qq邮箱的格式是什么| 獐是什么动物| 梦见做鞋子是什么意思| 奥美拉唑治什么胃病| 吉士粉是什么东西| 尿蛋白2加是什么意思| 长期腹泻是什么病| 中心性肥胖什么意思| 宝宝拉肚子吃什么好| ca199是什么检查项目| 帆布是什么材质| mico是什么意思| 百香果有什么功效与作用| 破伤风针什么时候打| 2月29号是什么星座| rpr阴性是什么意思| 中老年人吃什么油好| 叶公好龙的好是什么意思| kdj是什么意思| 中医调理身体挂什么科| 脸发红发烫是什么原因| 朱元璋为什么不传位给朱棣| 仓鼠突然死了是为什么| 派出所所长什么级别| 南京市长是什么级别| 失眠吃什么中药调理效果快| dh什么意思| 射不出来是什么原因| 不完全性右束支传导阻滞是什么意思| 格格是什么意思| 小孩脚抽筋是什么原因引起的| 罗汉果是什么| 四月初八是什么节日| 红细胞平均体积偏低是什么意思| 怀孕脸上长痘痘是什么原因| 同房干涩什么原因导致的| 所谓是什么意思| 频繁做噩梦是什么原因| 副团级是什么军衔| 退烧药吃多了有什么副作用| circles是什么意思| 十二月十四日是什么星座| 皮内瘤变到底是什么意思| 希特勒为什么恨犹太人| 吃什么头发长得快| 什么是透析治疗| 调理神经吃什么药好| 头脑简单是什么生肖| 为什么月经迟迟不来| 仙茅配什么壮阳效果好| 舌苔发黑是什么病| 男生适合什么职业| 6969是什么意思| 什么是情商| joola是什么牌子| 1130是什么星座| 西米是什么字| 干咳挂什么科| 什么什么有味| 鲁迅原名什么| 侏罗纪是什么意思| 肾寒吃什么中成药| 犹太人属于什么人种| qid医学上是什么意思| 肝病有什么症状| 为什么邓超对鹿晗很好| 去湿气喝什么| 美容美体包括什么项目| 嗓子有粘痰什么原因| 痛风有什么不能吃| 骨髓穿刺能查出什么病| 2026年是什么生肖年| 无法入睡是什么原因| 肥肠炖什么好吃| 肝炎是什么| 善莫大焉是什么意思| 乾字五行属什么| 夏天可以干什么| abr是什么检查| 岁月的痕迹是什么意思| 组织部是干什么的| 高大上的意思是什么| 肺结节是什么病严重吗| 亥时属什么生肖| 社康是什么| 路征和景甜什么关系| jasonwood是什么牌子| 哀转久绝的绝什么意思| bmi值是什么意思| 蛋白糖是什么糖| 下雨为什么会打雷闪电| 儿童红眼病用什么眼药水| 臭屁什么意思| 开学买什么| 舒畅的舅舅是做什么的| 日语一个一个是什么意思| 报考护士资格证需要什么条件| 发什么什么大| 仙茅配什么壮阳效果好| 世界上最长的英语单词是什么| 五个月的宝宝能吃什么辅食| 为所欲为什么意思| 钙盐是什么| 后羿射日是什么意思| 一九九七年属什么生肖| 喘不过气是什么原因| 痛风发作期吃什么药| 蜂蜜什么时候喝比较好| 梦到死人是什么预兆| 蓝玫瑰的花语是什么| 眩晕症什么症状| 防代表什么生肖| 姓姜的男孩起什么名字好| 农历八月初一是什么星座| 白色五行属什么| 3s是什么意思| 初吻是什么意思| 查尿常规挂什么科| 大牛是什么意思| 笑死是什么意思| 惊蛰吃什么| 乌鱼是什么鱼| 奇异果是什么水果| 为的多音字是什么| 火龙果是什么颜色| 什么样人穿棉麻好看| 2023什么年| 树脂是什么材质| 什么网站可以看毛片| 百度Vai al contenuto

华为服务133亿美元背后:客户商业成功才是真..

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
默的部首是什么 肥肠炒什么菜好吃 把脉左右手代表什么 腿抽筋是什么原因造成的 备孕期间要注意什么
28周检查什么项目 前纵韧带钙化是什么意思 12378是什么电话 钧字五行属什么 脖子上长疣是什么原因
长春有什么特产 mar什么意思 看走眼是什么意思 自由行是什么意思 护佑是什么意思
中国最长的河是什么河 大便粘便池是什么原因 脑血管堵塞会有什么后果 hm什么牌子 耳语是什么意思
手心热吃什么药hcv8jop6ns5r.cn 国字脸适合什么发型男hcv8jop7ns8r.cn 皮蛋和什么不能一起吃hcv8jop6ns5r.cn 白配什么颜色好看hcv7jop5ns0r.cn 舌头有裂纹是什么原因helloaicloud.com
风寒水饮是什么意思hcv9jop0ns1r.cn 爰是什么意思hcv7jop4ns8r.cn 威胁什么意思hcv8jop5ns3r.cn 铁棍山药和普通山药有什么区别hcv8jop4ns9r.cn 17岁属什么生肖hcv9jop5ns3r.cn
孕晚期高血压对胎儿有什么影响hcv8jop8ns3r.cn 晚上看见黄鼠狼有什么预兆hcv9jop0ns6r.cn 吃芒果不能吃什么hcv9jop4ns8r.cn 胃烧心是什么原因qingzhougame.com 接站是什么意思aiwuzhiyu.com
大学团委书记什么级别hcv9jop6ns4r.cn 肛裂用什么药膏hcv8jop7ns5r.cn 口干舌燥喝水也不解渴是什么原因hcv8jop5ns4r.cn 嗓子有黄痰是什么原因hcv8jop7ns7r.cn 赫是什么意思hcv7jop9ns4r.cn
百度