產(chǎn)品汪offer養(yǎng)成09 | 軟件開(kāi)發(fā)生命周期詳解(上)

沒(méi)有人從一開(kāi)始就知道如何做,你需要的只是開(kāi)始。

我希望你們也可以找到屬于自己的勇氣,使你們的生命成為一個(gè)祝福?!R克·扎克伯格


常見(jiàn)團(tuán)隊(duì)分工
image

軟件開(kāi)發(fā)生命周期詳解(上)

軟件生命周期的七個(gè)階段

1、問(wèn)題的定義及規(guī)劃

此階段是軟件開(kāi)發(fā)方與需求方共同討論,主要確定軟件的開(kāi)發(fā)目標(biāo)及其可行性。

2、需求分析

在確定軟件開(kāi)發(fā)可行的情況下,對(duì)軟件需要實(shí)現(xiàn)的各個(gè)功能進(jìn)行詳細(xì)分析。需求分析階段是一個(gè)很重要的階段,這一階段做得好,將為整個(gè)軟件開(kāi)發(fā)項(xiàng)目的成功打下良好的基礎(chǔ)。"唯一不變的是變化本身。",同樣需求也是在整個(gè)軟件開(kāi)發(fā)過(guò)程中不斷變化和深入的,因此我們必須制定需求變更計(jì)劃來(lái)應(yīng)付這種變化,以保護(hù)整個(gè)項(xiàng)目的順利進(jìn)行。

3、軟件設(shè)計(jì)

此階段主要根據(jù)需求分析的結(jié)果,對(duì)整個(gè)軟件系統(tǒng)進(jìn)行設(shè)計(jì),如系統(tǒng)框架設(shè)計(jì),數(shù)據(jù)庫(kù)設(shè)計(jì)等等。軟件設(shè)計(jì)一般分為總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)。好的軟件設(shè)計(jì)將為軟件程序編寫(xiě)打下良好的基礎(chǔ)。

[圖片上傳中...(image-4a0e7a-1526552171126-8)]

4、程序編碼

此階段是將軟件設(shè)計(jì)的結(jié)果轉(zhuǎn)換成計(jì)算機(jī)可運(yùn)行的程序代碼。在程序編碼中必須要制定統(tǒng)一,符合標(biāo)準(zhǔn)的編寫(xiě)規(guī)范。以保證程序的可讀性,易維護(hù)性,提高程序的運(yùn)行效率。

5、軟件測(cè)試

在軟件設(shè)計(jì)完成后要經(jīng)過(guò)嚴(yán)密的測(cè)試,以發(fā)現(xiàn)軟件在整個(gè)設(shè)計(jì)過(guò)程中存在的問(wèn)題并加以糾正。整個(gè)測(cè)試過(guò)程主要分單元測(cè)試、組裝測(cè)試以及系統(tǒng)測(cè)試三個(gè)階段進(jìn)行。測(cè)試的方法主要有白盒測(cè)試和黑盒測(cè)試兩種。在測(cè)試過(guò)程中需要建立詳細(xì)的測(cè)試計(jì)劃并嚴(yán)格按照測(cè)試計(jì)劃進(jìn)行測(cè)試,以減少測(cè)試的隨意性。

image

6、系統(tǒng)轉(zhuǎn)換

將作業(yè)由舊系統(tǒng)轉(zhuǎn)換新系統(tǒng),也就是說(shuō)運(yùn)行系統(tǒng)的方法,轉(zhuǎn)換方法有平行、分批、分發(fā)、立即、試驗(yàn)五種轉(zhuǎn)換方法。

7、運(yùn)行維護(hù)

軟件維護(hù)是軟件生命周期中持續(xù)時(shí)間最長(zhǎng)的階段。在軟件開(kāi)發(fā)完成并投入使用后,由于多方面的原因,軟件不能繼續(xù)適應(yīng)用戶(hù)的要求。要延續(xù)軟件的使用壽命,就必須對(duì)軟件進(jìn)行維護(hù)。軟件的維護(hù)包括糾錯(cuò)性維護(hù)和改進(jìn)性維護(hù)兩個(gè)方面。

軟件生命周期模型

任何軟件都是從最模糊的概念開(kāi)始的:為某個(gè)公司設(shè)計(jì)辦公的流程處理、設(shè)計(jì)一種商務(wù)信函打印系統(tǒng)并投放市場(chǎng)。這個(gè)概念是不清晰的,但卻是最高層的業(yè)務(wù)需求的原型。這個(gè)概念都會(huì)伴隨著一個(gè)目的,例如在一個(gè)“銀行押匯系統(tǒng)”的目的是提高工作的效率。這個(gè)目的將會(huì)成為系統(tǒng)的核心思想,系統(tǒng)成敗的評(píng)判標(biāo)準(zhǔn)。

從概念提出的那一刻開(kāi)始,軟件產(chǎn)品就進(jìn)入了軟件生命周期。在經(jīng)歷需求、分析、設(shè)計(jì)、實(shí)現(xiàn)、部署后,軟件將被使用并進(jìn)入維護(hù)階段,直到最后由于缺少維護(hù)費(fèi)用而逐漸消亡。這樣的一個(gè)過(guò)程,稱(chēng)為“生命周期模型”(Life Cycle Model)。

典型的幾種生命周期模型包括瀑布模型、迭代模型快速原型模型。

瀑布模型(Waterfall Model)首先由溫斯頓·羅伊斯(WinstonRoyce)提出。該模型由于酷似瀑布聞名。在該模型中,首先確定需求,并接受客戶(hù)和軟件質(zhì)量保證(SQA)小組的驗(yàn)證。然后擬定規(guī)格說(shuō)明,同樣通過(guò)驗(yàn)證后,進(jìn)入計(jì)劃階段…可以看出,瀑布模型中至關(guān)重要的一點(diǎn)是只有當(dāng)一個(gè)階段的文檔已經(jīng)編制好并獲得軟件質(zhì)量保證小組的認(rèn)可才可以進(jìn)入下一個(gè)階段。這樣,瀑布模型通過(guò)強(qiáng)制性的要求提供規(guī)約文檔來(lái)確保每個(gè)階段都能很好的完成任務(wù)。但是實(shí)際上往往難以辦到,因?yàn)檎麄€(gè)的模型幾乎都是以文檔驅(qū)動(dòng)的,這對(duì)于非專(zhuān)業(yè)的用戶(hù)來(lái)說(shuō)是難以閱讀和理解的。想象一下,你去買(mǎi)衣服的時(shí)候,售貨員給你出示的是一本厚厚的服裝規(guī)格說(shuō)明,你會(huì)有什么樣的感觸。雖然瀑布模型有很多很好的思想可以借鑒,但是在過(guò)程能力上有天生的缺陷。

迭代模型是RUP(Rational UnifiedProcess,統(tǒng)一軟件開(kāi)發(fā)過(guò)程,統(tǒng)一軟件過(guò)程)推薦的周期模型。在RUP中,迭代被定義為:迭代包括產(chǎn)生產(chǎn)品發(fā)布(穩(wěn)定、可執(zhí)行的產(chǎn)品版本)的全部開(kāi)發(fā)活動(dòng)和要使用該發(fā)布必需的所有其他外圍元素。所以,在某種程度上,開(kāi)發(fā)迭代是一次完整地經(jīng)過(guò)所有工作流程的過(guò)程:(至少包括)需求工作流程、分析設(shè)計(jì)工作流程、實(shí)施工作流程和測(cè)試工作流程。實(shí)質(zhì)上,它類(lèi)似小型的瀑布式項(xiàng)目。RUP認(rèn)為,所有的階段(需求及其它)都可以細(xì)分為迭代。每一次的迭代都會(huì)產(chǎn)生一個(gè)可以發(fā)布的產(chǎn)品,這個(gè)產(chǎn)品是最終產(chǎn)品的一個(gè)子集。迭代的思想如下圖所示。

image

迭代和瀑布的最大的差別就在于風(fēng)險(xiǎn)的暴露時(shí)間上。任何項(xiàng)目都會(huì)涉及到一定的風(fēng)險(xiǎn)。如果能在生命周期中盡早確保避免了風(fēng)險(xiǎn),那么您的計(jì)劃自然會(huì)更趨精確。有許多風(fēng)險(xiǎn)直到已準(zhǔn)備集成系統(tǒng)時(shí)才被發(fā)現(xiàn)。不管開(kāi)發(fā)團(tuán)隊(duì)經(jīng)驗(yàn)如何,都絕不可能預(yù)知所有的風(fēng)險(xiǎn)。二者的區(qū)別如下圖所示:

image

由于瀑布模型的特點(diǎn)(文檔是主體),很多的問(wèn)題在最后才會(huì)暴露出來(lái),為了解決這些問(wèn)題的風(fēng)險(xiǎn)是巨大的?!霸诘缴芷谥校枰鶕?jù)主要風(fēng)險(xiǎn)列表選擇要在迭代中開(kāi)發(fā)的新的增量?jī)?nèi)容。每次迭代完成時(shí)都會(huì)生成一個(gè)經(jīng)過(guò)測(cè)試的可執(zhí)行文件,這樣就可以核實(shí)是否已經(jīng)降低了目標(biāo)風(fēng)險(xiǎn)。”

快速原型模型在功能上等價(jià)于產(chǎn)品的一個(gè)子集。注意,這里說(shuō)的是功能上。瀑布模型的缺點(diǎn)就在于不夠直觀(guān),快速原型法就解決了這個(gè)問(wèn)題。一般來(lái)說(shuō),根據(jù)客戶(hù)的需要在很短的時(shí)間內(nèi)解決用戶(hù)最迫切需要,完成一個(gè)可以演示的產(chǎn)品。這個(gè)產(chǎn)品只是實(shí)現(xiàn)部分的功能(最重要的)。它最重要的目的是為了確定用戶(hù)的真正需求。在我的經(jīng)驗(yàn)中,這種方法非常的有效,原先對(duì)計(jì)算機(jī)沒(méi)有絲毫概念的用戶(hù)在你的原型面前往往口若懸河,有些觀(guān)點(diǎn)讓你都覺(jué)得非常的吃驚。在得到用戶(hù)的需求之后,原型將被拋棄。因?yàn)樵烷_(kāi)發(fā)的速度很快,設(shè)計(jì)方面是幾乎沒(méi)有考慮的,如果保留原型的話(huà),在隨后的開(kāi)發(fā)中會(huì)為此付出極大的代價(jià)。至于保留原型方面,也是有一種叫做增量模型是這么做的,但這種模型并不為大家所接受。

事實(shí)上,其實(shí)現(xiàn)在的軟件組織中很少說(shuō)標(biāo)準(zhǔn)的采用那一種模型的。模型和實(shí)用還是有很大的區(qū)別。

軟件生命周期模型的發(fā)展實(shí)際上是體現(xiàn)了軟件工程理論的發(fā)展。在最早的時(shí)候,軟件的生命周期處于無(wú)序、混亂的情況。一些人為了能夠控制軟件的開(kāi)發(fā)過(guò)程,就把軟件開(kāi)發(fā)嚴(yán)格的區(qū)分為多個(gè)不同的階段,并在階段間加上嚴(yán)格的審查。這就是瀑布模型產(chǎn)生的起因。瀑布模型體現(xiàn)了人們對(duì)軟件過(guò)程的一個(gè)希望:嚴(yán)格控制、確保質(zhì)量。可惜的是,現(xiàn)實(shí)往往是殘酷的。瀑布模型根本達(dá)不到這個(gè)過(guò)高的要求,因?yàn)檐浖倪^(guò)程往往難于預(yù)測(cè)。反而導(dǎo)致了其它的負(fù)面影響,例如大量的文檔、繁瑣的審批。因此人們就開(kāi)始嘗試著用其它的方法來(lái)改進(jìn)或替代瀑布方法。例如把過(guò)程細(xì)分來(lái)增加過(guò)程的可預(yù)測(cè)性。


行測(cè)筆試題

1. 圖形推理

從所給四個(gè)選項(xiàng)中,選擇最合適的一個(gè)填入問(wèn)號(hào)處,使之符合之前4個(gè)圖形的變化規(guī)律:

[圖片上傳中...(image-6b7f0c-1526552171123-1)]

A. ①②④,③⑤⑥

B. ①③⑥,②④⑤

C. ①③⑤,②④⑥

D. ①⑤⑥,②③④

參考答案

【解析】A。

觀(guān)察發(fā)現(xiàn),①②④圖形均由一個(gè)外框圖形,內(nèi)部包含4個(gè)獨(dú)立元素,且獨(dú)立元素間不存在包含等關(guān)系,而③⑤⑥圖形中外框圖形內(nèi)部包含4個(gè)圖形,且內(nèi)部的兩個(gè)圖形又被其中一個(gè)圖形包含,圖形分為內(nèi)中外三層,存在包含關(guān)系。故本題正確答案為A。

2. 數(shù)列推理題

3,27,5,125,6,216,7,()

A.224 B.343 C.517 D.695

參考答案

【解析】答案為B。

考慮分組討論。但是如果按照奇偶項(xiàng)分,沒(méi)有明顯規(guī)律。我們可以發(fā)現(xiàn),這組數(shù)列中有很多立方數(shù)字,可以按照兩兩一組分,(3,27)(5,125)(6,216),每一組中第二個(gè)數(shù)字均為第一個(gè)數(shù)字的立方,所以答案為7的立方,應(yīng)選B。

.

3.語(yǔ)言理解題

生物鐘基因是控制生物鐘的特殊基因,它們相互作用控制其他基因時(shí)而活躍時(shí)而沉寂,形成睡眠節(jié)奏??茖W(xué)家實(shí)驗(yàn)發(fā)現(xiàn),長(zhǎng)時(shí)間照明會(huì)擾亂幼鼠腦細(xì)胞中調(diào)節(jié)睡眠與蘇醒節(jié)律的生物鐘。一些醫(yī)院的嬰兒護(hù)理室為方便照料新生兒,習(xí)慣把他們安置在長(zhǎng)時(shí)間有照明的環(huán)境中,科學(xué)家擔(dān)心這種長(zhǎng)明環(huán)境可能導(dǎo)致新生兒睡眠和蘇醒的節(jié)律發(fā)生紊亂。

下列哪項(xiàng)為真,可以成為科學(xué)家擔(dān)心的前提條件?( )

A.很多嬰兒只在護(hù)理室中短期停留就會(huì)交到父母身邊

B.用于照射幼鼠的光線(xiàn)與嬰兒護(hù)理室的光線(xiàn)強(qiáng)度相同

C.人體內(nèi)生物鐘機(jī)制與實(shí)驗(yàn)所用老鼠基本相同

D.被長(zhǎng)時(shí)間照明擾亂了生物鐘的幼鼠即便被放回到正常環(huán)境也很難恢復(fù)

參考答案

【解析】C。

長(zhǎng)明環(huán)境可能導(dǎo)致新生兒睡眠和蘇醒的節(jié)律發(fā)生紊亂。其論據(jù)是:長(zhǎng)時(shí)間照明會(huì)擾亂幼鼠腦細(xì)胞中調(diào)節(jié)睡眠與蘇醒節(jié)律的生物鐘;所以要使科學(xué)家的擔(dān)心成立就要在兩者間建立聯(lián)系。C項(xiàng)指出人體內(nèi)生物鐘機(jī)制與實(shí)驗(yàn)所用老鼠基本相同,屬于搭橋的方法,是前提。AD兩項(xiàng)只涉及一個(gè)方面不能建立起聯(lián)系。B項(xiàng)雖然幼鼠和嬰兒均提及,但如果人體的生物鐘機(jī)制與老鼠的不同,那么科學(xué)家的擔(dān)心也是多余的。故選C。

image

大廠(chǎng)暑期實(shí)習(xí)的招聘已到中后期,大部分的同學(xué)手中還沒(méi)有offer,一部分的同學(xué)在備胎池中煎熬著。但是,那一小部分已經(jīng)拿到offer的同學(xué),不一定就在輕輕松松的玩耍,人家說(shuō)不定比你更努力。幸運(yùn)總是會(huì)眷顧有準(zhǔn)備的人,小伙伴們,跟著【19應(yīng)屆生】學(xué)習(xí)產(chǎn)品知識(shí),我們一起加油吧~!

image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.測(cè)試與軟件模型 軟件開(kāi)發(fā)生命周期模型指的是軟件開(kāi)發(fā)全過(guò)程、活動(dòng)和任務(wù)的結(jié)構(gòu)性框架。軟件項(xiàng)目的開(kāi)發(fā)包括:需求、設(shè)...
    宇文臭臭閱讀 6,870評(píng)論 5 101
  • 1.測(cè)試與軟件模型 軟件開(kāi)發(fā)生命周期模型指的是軟件開(kāi)發(fā)全過(guò)程、活動(dòng)和任務(wù)的結(jié)構(gòu)性框架。軟件項(xiàng)目的開(kāi)發(fā)包括:需求、設(shè)...
    Mr希靈閱讀 22,405評(píng)論 7 278
  • 回憶,在時(shí)間中沉淀, 時(shí)間,在回憶中消失, 感觸,在重覆中麻木, 我們,在麻木中重覆, 愛(ài)情,在指縫間承諾, 指縫...
    Becauseofy_8c73閱讀 275評(píng)論 0 1
  • 寶貝這次考試雙百,媽媽就給你買(mǎi)兒童手表;兒子,今天把琴譜練習(xí)完媽媽帶你去吃KFC…這種場(chǎng)景我們似乎經(jīng)常遇見(jiàn),我這個(gè)...
    遇見(jiàn)喜悅閱讀 470評(píng)論 0 0
  • 春天是花的世界,今天就分享下鏡頭里花的朦朧、羞澀、驚艷和怒放吧。 春天盛開(kāi)的花,個(gè)個(gè)姹紫嫣紅,千姿百態(tài),宛如亭亭玉...
    一笑人生閱讀 337評(píng)論 3 12

友情鏈接更多精彩內(nèi)容