應(yīng)用程序開發(fā)生命周期是用于說(shuō)明包含應(yīng)用程序開發(fā)中遵循的各種過(guò)程的綜合過(guò)程的術(shù)語(yǔ)。它從識(shí)別要求開始,經(jīng)過(guò)幾個(gè)建設(shè)性階段,行動(dòng)過(guò)程最終導(dǎo)致部署和維護(hù)。而后者適用于包括高端信息系統(tǒng)和系統(tǒng)工程項(xiàng)目在內(nèi)的各種發(fā)展,前者基本上限于軟件應(yīng)用開發(fā)。
應(yīng)用開發(fā)生命周期本質(zhì)上是系統(tǒng)開發(fā)生命周期(SDLC)的一個(gè)子集。
構(gòu)成流程的活動(dòng)順序通常包括規(guī)劃,分析,設(shè)計(jì),測(cè)試和實(shí)施。這些故意的階段通常在各種其他活動(dòng)之前和之后。在已有系統(tǒng)的情況下,該過(guò)程將從系統(tǒng)的全面評(píng)估開始。另一方面,當(dāng)開始新鮮時(shí),該過(guò)程是從各種來(lái)源收集的信息開始的。最初的步驟通常在可行性研究之前進(jìn)行,以評(píng)估未來(lái)步驟的可行性和整體發(fā)展活動(dòng)。根據(jù)客戶預(yù)算,資源可用性等各種參數(shù),理想的行動(dòng)方針決定了最終目標(biāo)的范圍。這個(gè)過(guò)程堅(jiān)持到基本階段,其基本上定義了將被使用的模型的類型。一些受歡迎的應(yīng)用開發(fā)生命周期模型包括
瀑布模型
原型模型
敏捷模型
瀑布模型
這種傳統(tǒng)模式是在意識(shí)形態(tài)上構(gòu)想的,即在開發(fā)周期的早期花費(fèi)足夠的時(shí)間可以在后期階段降低成本。如果在初始階段本身出現(xiàn)問(wèn)題,那么修復(fù)比以后的階段要容易得多,成本效益更高。
該模型采用順序過(guò)程,并且進(jìn)度被視為向下流動(dòng)。由于這可以很容易地識(shí)別與瀑布的流動(dòng),這個(gè)過(guò)程已經(jīng)被稱為瀑布模型。瀑布模式“流動(dòng)”進(jìn)程的各個(gè)階段包括:
概念化
引發(fā)
分析
設(shè)計(jì)
開發(fā)/編碼
測(cè)試
部署/實(shí)施
維護(hù)
在概念的主要階段包括創(chuàng)建需求規(guī)范文檔。它征集了整體功能和非功能性要求。它還可以允許開發(fā)定義應(yīng)用程序提供的各種用戶交互的“用例”。
該文件基本上是客戶和開發(fā)團(tuán)隊(duì)之間確認(rèn)的各種協(xié)議的實(shí)施。它允許在開始設(shè)計(jì)之前對(duì)基本要求進(jìn)行細(xì)致的評(píng)估。它可以在以后減少不必要的重新設(shè)計(jì),并提供對(duì)風(fēng)險(xiǎn),產(chǎn)品成本和時(shí)間表的務(wù)實(shí)估計(jì)。隨后的步驟是分析這些要求,對(duì)項(xiàng)目的成功至關(guān)重要。此外,這些要求是必要的可操作和可衡量的,而在根本的業(yè)務(wù)限制的范式下被定義。
在瀑布模式中,通常在前兩個(gè)階段投資20-40%的項(xiàng)目進(jìn)度。分析,設(shè)計(jì)和開發(fā)的后續(xù)階段將會(huì)為應(yīng)用程序提供一個(gè)形成性的結(jié)構(gòu)。大約30-40%的時(shí)間用于這些重要階段,而其余的則用于測(cè)試和實(shí)施軟件。大多數(shù)項(xiàng)目包括一個(gè)管制整體發(fā)展過(guò)程的控制和程序的詳細(xì)清單。
雖然瀑布模式是許多主要組織之后的相當(dāng)長(zhǎng)的時(shí)期的選擇過(guò)程,但現(xiàn)在已經(jīng)脫離了偏好。有人被批評(píng)為高度僵硬和遲鈍。此外,客戶在項(xiàng)目初期就完全了解其需求的假設(shè)已經(jīng)被貶低。觀看最終產(chǎn)品和做出改變的務(wù)實(shí)選擇導(dǎo)致重建和測(cè)試的開銷,這使得瀑布模型與開發(fā)團(tuán)隊(duì)不受歡迎。該模型的許多修改版本現(xiàn)在已經(jīng)出現(xiàn)并在具有多種變體的組織中使用。
原型
應(yīng)用程序原型的構(gòu)建是為了方便最終用戶通過(guò)嘗試將其開發(fā)人員的產(chǎn)品提案評(píng)估為重要。這與基于簡(jiǎn)單描述的設(shè)計(jì)評(píng)估的傳統(tǒng)過(guò)程相反。原型基本上是最終應(yīng)用的不完整版本,并模擬其中的一些主要方面。它可以帶來(lái)各種好處,因?yàn)殚_發(fā)人員可以在項(xiàng)目開始時(shí)早日從最終用戶那里獲得有價(jià)值的反饋。它允許所有的利益相關(guān)者始終分析規(guī)格,并與最終產(chǎn)品匹配。此外,它允許他們對(duì)項(xiàng)目的準(zhǔn)確性和范圍有很多見解。這樣可以讓利益相關(guān)方更好地估計(jì)最后期限,并確保成功實(shí)現(xiàn)。原型制定有助于描述未考慮的要求,這可能是客戶和開發(fā)商之間商業(yè)關(guān)系的關(guān)鍵。以下是原型設(shè)計(jì)中涉及的基本步驟識(shí)別基本要求
要求收集:初始步驟根據(jù)客戶需求確定可組裝的主要要求。如果有的話,也可以從現(xiàn)有的系統(tǒng)采購(gòu)。
原型開發(fā):初始項(xiàng)目只包含基本的用戶界面。它們是基于上一步收集的要求的細(xì)節(jié)。
評(píng)估:最終用戶分析原型,并提出一個(gè)深刻的反饋列表,需要改變。
改進(jìn):輸入用于捕獲規(guī)格?;谶@些原型,通過(guò)不斷的交互改變或改進(jìn)。隨著原型的不斷發(fā)展,它將演變?yōu)榭偨Y(jié)項(xiàng)目的范圍。
實(shí)施:根據(jù)最終的原型,開發(fā)商隨后就開發(fā)了真正的產(chǎn)品,經(jīng)過(guò)徹底的測(cè)試,以符合商定的規(guī)范。
該模型允許添加以前無(wú)法構(gòu)想的功能,從而更好地了解客戶端和最終用戶的實(shí)際應(yīng)用。它也可以節(jié)省成本,因?yàn)樗械淖兓旧隙际窃谠蜕贤瓿傻?,而不是主要的產(chǎn)品。然而,它具有自己的缺點(diǎn),因?yàn)樵谶M(jìn)階階段演變的一些功能可能不會(huì)在產(chǎn)品的最終范圍內(nèi)導(dǎo)致用戶怨恨。而開發(fā)人員可以根據(jù)所提供的反饋進(jìn)行更改,但技術(shù)合格的最終用戶可能會(huì)要求不可行的功能。這也可能導(dǎo)致一些分歧,并可能導(dǎo)致利益相關(guān)者脫離接觸。
已經(jīng)開發(fā)了幾種版本的原型模型,目的是減少缺點(diǎn)并優(yōu)化過(guò)程。雖然,這種技術(shù)可以被認(rèn)為是對(duì)瀑布模型的整體改進(jìn),但最近開發(fā)的創(chuàng)新方法在這種方法中更加動(dòng)態(tài)和務(wù)實(shí)。目前流行的理想方法之一是敏捷開發(fā)模式。
應(yīng)用開發(fā)方法
這是一種意識(shí)形態(tài),旨在通過(guò)跨職能和自組織團(tuán)隊(duì)的共同努力來(lái)演變需求和解決方案。它通過(guò)適應(yīng)性規(guī)劃,迭代開發(fā)和不斷改進(jìn),支持對(duì)修訂進(jìn)行快速靈活的回應(yīng)。在2001年2月設(shè)想的敏捷宣言中,討論了各種方式,使軟件開發(fā)更加人性化。這導(dǎo)致了工作軟件的概念化,動(dòng)力被轉(zhuǎn)移到客戶協(xié)作和務(wù)實(shí)的變革反應(yīng)而不是合同談判,而且剛剛符合計(jì)劃。
雖然有幾種敏捷開發(fā)方法,但大多數(shù)在整個(gè)生命周期中促進(jìn)客戶協(xié)作,流程適應(yīng)性和高效團(tuán)隊(duì)合作。
大多數(shù)敏捷開發(fā)方法是增量式,進(jìn)化型和高度迭代性。他們通過(guò)將總體任務(wù)分解為小幅增長(zhǎng)來(lái)實(shí)現(xiàn)。這是通過(guò)最少的規(guī)劃和短時(shí)間幀迭代(時(shí)間框)完成的,時(shí)間框架通常在一周內(nèi)持續(xù),從一周到一個(gè)月。迭代涉及跨職能團(tuán)隊(duì)執(zhí)行典型應(yīng)用程序開發(fā)的所有類型的功能。功能主要包括需求分析,規(guī)劃,設(shè)計(jì),開發(fā),驗(yàn)收測(cè)試和單元測(cè)試。當(dāng)?shù)Y(jié)束時(shí),操作產(chǎn)品向客戶展示。這可能沒有所有功能需要發(fā)布,但目標(biāo)是準(zhǔn)備一個(gè)可釋放的版本。盡管風(fēng)險(xiǎn)最小化,但也有助于快速適應(yīng)變化。
該模型通常包含位于車間的大型顯示器,作為信息散熱器。它以總結(jié)形式提供項(xiàng)目的最新狀態(tài)。發(fā)展過(guò)程中遵循的主要學(xué)科之一包括所有團(tuán)隊(duì)成員的面對(duì)面溝通。通常每個(gè)團(tuán)隊(duì)都包括由客戶指定的客戶代表。該代表始終可用于回答中間迭代查詢。在每次迭代的結(jié)論中,所有利益相關(guān)者分析進(jìn)展。他們審查優(yōu)先事項(xiàng)并重新評(píng)估,以最大限度地提高投資回報(bào)率(ROI)。
敏捷開發(fā)的流行特征之一就是Scrum。這是從項(xiàng)目開始到結(jié)束的每天的簡(jiǎn)短會(huì)議。每個(gè)scrum旨在實(shí)現(xiàn)團(tuán)隊(duì)的沖刺目標(biāo)。所有成員彼此報(bào)告前一天的工作,并討論第二天的工作。他們還討論并整理解決方案,以有效地解決他們隊(duì)的沖刺目標(biāo)的障礙。這些簡(jiǎn)短的反饋循環(huán)可以在推導(dǎo)以質(zhì)量和適應(yīng)性為重點(diǎn)的理想方式方面具有建設(shè)性。
敏捷軟件開發(fā)還使用各種技術(shù)來(lái)保持對(duì)質(zhì)量的關(guān)注。其中一些包括 -
持續(xù)整合:實(shí)踐包括將所有團(tuán)隊(duì)成員的工作副本合并到共享主線。為了防止整合問(wèn)題,這一活動(dòng)通常在一天內(nèi)連續(xù)多次進(jìn)行。
單元測(cè)試: 它是組件測(cè)試的基礎(chǔ),包括測(cè)試由白盒測(cè)試人員創(chuàng)建的代碼片段。它涉及測(cè)試計(jì)算機(jī)程序模塊和各個(gè)單元的源代碼。具有相關(guān)使用程序和控制數(shù)據(jù)的操作程序一起進(jìn)行測(cè)試,以查看它們是否適合操作。
配對(duì)編程: 這種敏捷的軟件開發(fā)技術(shù)要求兩位開發(fā)人員在一個(gè)工作站上工作。一個(gè)人編寫代碼時(shí),其他開發(fā)人員會(huì)同時(shí)審查每一行代碼。觀察者側(cè)重于代碼的戰(zhàn)略過(guò)程,注入思想來(lái)解決未來(lái)的問(wèn)題。這使作者能夠?qū)W⒂趯?shí)施任務(wù)的戰(zhàn)術(shù)方面。
測(cè)試驅(qū)動(dòng)開發(fā): 該過(guò)程涉及持續(xù)重復(fù)的開發(fā)周期短。要開始一個(gè)定義一個(gè)功能的自動(dòng)測(cè)試用例。之后是通過(guò)測(cè)試的代碼,讓程序員創(chuàng)建符合可接受標(biāo)準(zhǔn)的代碼。在鼓勵(lì)簡(jiǎn)約設(shè)計(jì)和激發(fā)程序員的信心方面有很長(zhǎng)的路要走。該概念也適用于改進(jìn)和調(diào)試用舊技術(shù)創(chuàng)建的舊代碼。
域驅(qū)動(dòng)設(shè)計(jì):該技術(shù)通過(guò)將實(shí)現(xiàn)與不斷發(fā)展的模型相鏈接來(lái)關(guān)注復(fù)雜的需求。關(guān)注核心領(lǐng)域邏輯是這一技術(shù)的基本前提。
代碼重構(gòu):該過(guò)程包括重組現(xiàn)有代碼,修改因式分解。這樣做不會(huì)影響外部行為。重構(gòu)增強(qiáng)了應(yīng)用程序的非功能屬性。增強(qiáng)的代碼可讀性和精簡(jiǎn)的復(fù)雜性是必不可少的優(yōu)勢(shì),同時(shí)也提高了源代碼的可維護(hù)性,從而創(chuàng)建了一個(gè)交互式內(nèi)部架構(gòu)來(lái)提高可擴(kuò)展性。
雖然這些是用于提高質(zhì)量和提高敏捷性的各種技術(shù)的一些,但敏捷模型側(cè)重于穩(wěn)定的規(guī)劃和早期準(zhǔn)確的估計(jì)。雖然這些可能在一開始就難以實(shí)現(xiàn),但對(duì)計(jì)劃規(guī)劃的迭代方法允許通過(guò)靈活性將變化的范圍改變?yōu)椴粩嘧兓默F(xiàn)實(shí)。
隨著測(cè)試在每次迭代中執(zhí)行,代碼的每一小部分經(jīng)常被驗(yàn)證以適應(yīng)新的部分。這有助于團(tuán)隊(duì)不斷適應(yīng)計(jì)劃,從而最大限度地發(fā)揮其價(jià)值。
當(dāng)更新的軟件的真實(shí)價(jià)值被用戶解密時(shí),它可以幫助他們對(duì)軟件的未來(lái)做出更多的決定。
雖然敏捷方法集中在應(yīng)用程序開發(fā)的各個(gè)方面,但主要重點(diǎn)在于管理項(xiàng)目的實(shí)踐和重要方面。然而,該方法在整個(gè)開發(fā)生命周期中提供了全面的覆蓋。
總結(jié)
應(yīng)用開發(fā)生命周期本質(zhì)上是系統(tǒng)開發(fā)生命周期(SDLC)的一個(gè)子集。
構(gòu)成流程的活動(dòng)順序通常包括規(guī)劃,分析,設(shè)計(jì),測(cè)試和實(shí)施。
根據(jù)客戶預(yù)算,資源可用性等各種參數(shù),理想的行動(dòng)方針決定了最終目標(biāo)的范圍。
瀑布模式是在開發(fā)周期早期花費(fèi)足夠時(shí)間的意識(shí)形態(tài)來(lái)構(gòu)想的,以消除錯(cuò)誤,從而降低后期成本。
在瀑布模式中,通常在前兩個(gè)階段投資20-40%的項(xiàng)目進(jìn)度。
應(yīng)用程序原型的構(gòu)建是為了方便最終用戶通過(guò)嘗試將其開發(fā)人員的產(chǎn)品提案評(píng)估為重要。
該模型允許添加以前無(wú)法構(gòu)想的功能,從而更好地了解客戶端和最終用戶的實(shí)際應(yīng)用。
敏捷發(fā)展思想旨在通過(guò)跨職能和自組織團(tuán)隊(duì)的共同努力,不斷發(fā)展的需求和解決方案。
大多數(shù)敏捷開發(fā)方法是增量式,進(jìn)化型和高度迭代性。