国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

《面向?qū)ο筌浖こ獭饭P記——1-2章

這篇具有很好參考價(jià)值的文章主要介紹了《面向?qū)ο筌浖こ獭饭P記——1-2章。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

“學(xué)習(xí)不僅是一種必要,而且是一種愉快的活動(dòng)?!?- 尼爾·阿姆斯特朗

第一章 面向?qū)ο筌浖こ痰姆懂?/h2>

軟件工程是一門(mén)以生產(chǎn)出沒(méi)有錯(cuò)誤、按時(shí)并且在預(yù)算內(nèi)交付的滿足客戶需求的軟件為目的的學(xué)科。這個(gè)定義非常廣泛,所以能使用到從數(shù)學(xué)、計(jì)算機(jī)科學(xué)到管理學(xué)、心理學(xué)等諸多專(zhuān)業(yè)的學(xué)科。開(kāi)發(fā)軟件的思想不同,進(jìn)行開(kāi)發(fā)的整個(gè)流程也不一樣,當(dāng)前世界上的主流思想是面向?qū)ο笏枷耄虼藭?shū)中講的也就是面向?qū)ο筌浖こ?。本章先從歷史,經(jīng)濟(jì),維護(hù),需求、分析、設(shè)計(jì),團(tuán)隊(duì)開(kāi)發(fā)這些方面講述了軟件工程的作用。

歷史方面

在歷史方面,由于要研發(fā)出符合預(yù)算,符合時(shí)間限制,少有錯(cuò)誤的軟件很難,因此許多開(kāi)發(fā)組織的大部分軟件都以失敗告終,并且軟件開(kāi)發(fā)是與傳統(tǒng)工程不同的全新領(lǐng)域,因此許多經(jīng)驗(yàn)豐富的軟件工程師聯(lián)合開(kāi)發(fā)了一套用于開(kāi)發(fā)軟件的方法論,即軟件工程。

經(jīng)濟(jì)方面

在經(jīng)濟(jì)方面,軟件工程會(huì)是工程師有效做出正確決策來(lái)節(jié)約預(yù)算。通過(guò)軟件工程,工程師能預(yù)測(cè)開(kāi)發(fā)的那一部分比較重要,需要多花力氣,哪一部分不太重要,不值得浪費(fèi)時(shí)間和金錢(qián)。

維護(hù)方面

維護(hù)是軟件生命周期的一個(gè)步驟。為了描述一個(gè)軟件的生命周期,出現(xiàn)了多種生命周期模型。瀑布生命周期模型是一種比較舊的模型,現(xiàn)在使用的生命周期模型很多都是它的變種。瀑布模型包括六個(gè)步驟:

  • 需求階段:探究并細(xì)化概念,提取客戶需求。
  • 分析階段:分析客戶需求,將需求記錄在規(guī)格說(shuō)明文檔中。分析結(jié)束時(shí)給出詳細(xì)描述軟件開(kāi)發(fā)過(guò)程的計(jì)劃,稱作軟件項(xiàng)目管理計(jì)劃。
  • 設(shè)計(jì)階段:分成兩個(gè)步驟,首先進(jìn)行體系結(jié)構(gòu)設(shè)計(jì),將整體產(chǎn)品分解為若干模塊;然后進(jìn)行詳細(xì)設(shè)計(jì),設(shè)計(jì)每個(gè)模塊的實(shí)現(xiàn)邏輯。結(jié)束時(shí)給出說(shuō)明整個(gè)產(chǎn)品實(shí)現(xiàn)邏輯的設(shè)計(jì)文檔。
  • 實(shí)現(xiàn)階段:對(duì)每個(gè)組件進(jìn)行單獨(dú)的編碼和單元測(cè)試。每完成一個(gè)組件,將其與先前做好的組件合并成一個(gè)整體進(jìn)行集成測(cè)試。最后客戶對(duì)整個(gè)產(chǎn)品進(jìn)行驗(yàn)收測(cè)試。
  • 交付后維護(hù):包括糾錯(cuò)性維護(hù)(軟件修復(fù))和增強(qiáng)性維護(hù)(軟件更新)。糾錯(cuò)性維護(hù)糾正軟件的錯(cuò)誤,不修改規(guī)格說(shuō)明文檔;增強(qiáng)性維護(hù)添加新功能或更改不合適的功能,修改規(guī)格說(shuō)明文檔。增強(qiáng)性維護(hù)包括兩類(lèi),完善維護(hù),為了提高產(chǎn)品性能所做的維護(hù);適應(yīng)性維護(hù),為了讓程序適應(yīng)環(huán)境的變化所做的維護(hù)。環(huán)境的變化如新的硬件/操作系統(tǒng)或政府的新規(guī)定。
  • 退役:產(chǎn)品推出服務(wù)。產(chǎn)品對(duì)客戶沒(méi)有任何用處時(shí)產(chǎn)品退役。

現(xiàn)代軟件維護(hù)觀點(diǎn)

現(xiàn)代軟件開(kāi)發(fā)中認(rèn)為,在軟件的整個(gè)生命周期中,即從需求到退役,只要對(duì)軟件已完成的部分有因?yàn)殄e(cuò)誤或需求變化而進(jìn)行的改動(dòng),都稱作維護(hù)。上問(wèn)的交付后維護(hù)是在軟件交付給客戶后進(jìn)行的維護(hù),是維護(hù)的一個(gè)子集。

交付后維護(hù)的重要性

為了糾正軟件中的錯(cuò)誤,并且讓軟件適應(yīng)外界的不斷變化,開(kāi)發(fā)組織會(huì)不斷對(duì)軟件進(jìn)行交付后維護(hù)。事實(shí)上交付后維護(hù)會(huì)花費(fèi)掉開(kāi)發(fā)組織大部分的開(kāi)發(fā)預(yù)算。

需求、分析和設(shè)計(jì)方面

由于在軟件開(kāi)發(fā)的過(guò)程中,前面階段的錯(cuò)誤顯然會(huì)影響后面階段的成果物,所以一個(gè)錯(cuò)誤越晚發(fā)現(xiàn),越會(huì)耗費(fèi)更多的時(shí)間和預(yù)算去解決,且這種花費(fèi)是指數(shù)級(jí)增長(zhǎng)的。比如說(shuō)如果在實(shí)現(xiàn)階段才發(fā)現(xiàn)分析出現(xiàn)了錯(cuò)誤,那么從分析,設(shè)計(jì),到部分模塊的實(shí)現(xiàn)都要重新進(jìn)行。
大部分錯(cuò)誤出在需求、分析和設(shè)計(jì)階段,因此有完善的錯(cuò)誤檢測(cè)技術(shù)來(lái)檢測(cè)這些階段的錯(cuò)誤是很重要的,軟件工程也包括如何進(jìn)行錯(cuò)誤檢測(cè)。

團(tuán)隊(duì)開(kāi)發(fā)方面

如果一個(gè)團(tuán)隊(duì)的成員之間不能互相協(xié)調(diào),組織良好,那么將花費(fèi)大量的無(wú)用功或重復(fù)勞動(dòng)。軟件工程包括確保對(duì)團(tuán)隊(duì)進(jìn)行良好管理和組織的技術(shù)。

沒(méi)有計(jì)劃,測(cè)試,文檔階段的原因

雖然計(jì)劃、測(cè)試和文檔是開(kāi)發(fā)過(guò)程中很重要的部分,但是這三部分的工作貫穿整個(gè)生命周期,所以無(wú)法劃分出單獨(dú)的階段。

面向?qū)ο蠓缎?/h3>

傳統(tǒng)的面向過(guò)程范型有兩個(gè)缺點(diǎn):

  • 無(wú)法應(yīng)付規(guī)模較大的軟件產(chǎn)品。由于是一整個(gè)整體進(jìn)行開(kāi)發(fā),隨著代碼規(guī)模增大,代碼之間的聯(lián)系以極快的速度增長(zhǎng),相應(yīng)的開(kāi)發(fā)難度也大大提升。
  • 無(wú)法滿足對(duì)交付后維護(hù)的期望。大規(guī)模的面向過(guò)程泛型軟件產(chǎn)品是很復(fù)雜的,有時(shí)常常會(huì)牽一發(fā)而動(dòng)全身,這給交付后維護(hù)帶來(lái)了很大的難度。

面向?qū)ο蠓缎陀捎趯傩院筒僮靼b呈一個(gè)對(duì)象,克服了這兩個(gè)缺點(diǎn)。由于現(xiàn)實(shí)世界的幾乎所有物質(zhì)都有屬性和操作這兩種概念組成,因此把這兩個(gè)概念包裝在一起的對(duì)象,就是這個(gè)物質(zhì)在代碼世界中的映射。面向?qū)ο蠓缎偷能浖a(chǎn)品,克服了上面的缺點(diǎn)。面向?qū)ο蠓缎屯ㄟ^(guò)讓這些對(duì)象相互之間進(jìn)行消息的發(fā)送,對(duì)象收到消息后進(jìn)行具體的操作來(lái)完成任務(wù)(由于如何執(zhí)行操作是對(duì)象的職責(zé),因此面向?qū)ο笤O(shè)計(jì)也被稱作職責(zé)驅(qū)動(dòng)設(shè)計(jì))。通過(guò)將整個(gè)產(chǎn)品劃分為一個(gè)個(gè)小型的,獨(dú)立的單元,對(duì)象之間的聯(lián)系清晰明了,所以整個(gè)產(chǎn)品的邏輯也是清晰的,開(kāi)發(fā)和維護(hù)的難度也就大大降低了。
也是因?yàn)檫@種設(shè)計(jì),面向?qū)ο蠓缎鸵灿性S多優(yōu)點(diǎn):

  1. 支持信息隱藏。由于每個(gè)對(duì)象的操作只局限在對(duì)象內(nèi)部,因此沒(méi)有必要讓對(duì)象外知道除了職責(zé)以外的信息。這種隱藏機(jī)制可以防止對(duì)象外的代碼濫用對(duì)象的信息。
  2. 促進(jìn)重用。由于對(duì)象的強(qiáng)獨(dú)立性,可以將部分對(duì)象單獨(dú)提出來(lái),重復(fù)使用在以后的軟件開(kāi)發(fā)中,實(shí)現(xiàn)代碼的重用。

然而,面向?qū)ο蠓缎鸵灿腥秉c(diǎn),并且以后也會(huì)被更好的方法替代。

術(shù)語(yǔ)

客戶:雇人開(kāi)發(fā)軟件產(chǎn)品的實(shí)體
開(kāi)發(fā)者:開(kāi)發(fā)產(chǎn)品的實(shí)體。注意,用戶和開(kāi)發(fā)者可以屬于同一組織。
用戶:使用所開(kāi)發(fā)軟件的實(shí)體。客戶和用戶可以是同一個(gè)實(shí)體。
定制軟件:為特定人編寫(xiě)的定制軟件。
COTS軟件(商用現(xiàn)貨軟件):以低廉的價(jià)格出售給大量購(gòu)買(mǎi)者使用的軟件。
開(kāi)源軟件:消費(fèi)者購(gòu)買(mǎi)后可以獲得源代碼的軟件。這種軟件支持消費(fèi)者進(jìn)行二次修改和維護(hù)。
軟件:包括程序和文檔的一種產(chǎn)品。
過(guò)錯(cuò),差錯(cuò),故障:程序員的過(guò)錯(cuò)會(huì)導(dǎo)致軟件的差錯(cuò),差錯(cuò)會(huì)導(dǎo)致軟件進(jìn)行不正確的行為,即故障。

第二章 軟件生命周期模型

在理想狀態(tài)下,軟件產(chǎn)品從需求,分析,設(shè)計(jì),實(shí)現(xiàn)到維護(hù),退役,走完一整個(gè)流程。但實(shí)際上,在開(kāi)發(fā)過(guò)程中,由于錯(cuò)誤或需求變化等原因,需要進(jìn)行維護(hù),也就是回到之前階段進(jìn)行重新修改。因此,在軟件開(kāi)發(fā)時(shí)的瀑布模型如下(不包括交付后維護(hù)和退役):
《面向?qū)ο筌浖こ獭饭P記——1-2章,面向?qū)ο筌浖こ?軟件工程,筆記
其中紅色代表開(kāi)發(fā)流程,藍(lán)色代表維護(hù)流程。注意,維護(hù)流程可以一級(jí)級(jí)連續(xù)向上。

迭代與增量

一個(gè)軟件產(chǎn)品在開(kāi)發(fā)時(shí)都關(guān)注于五個(gè)工作流:需求工作流,分析工作流,設(shè)計(jì)工作流,實(shí)現(xiàn)工作流,測(cè)試工作流。
當(dāng)軟件產(chǎn)品完成了某一階段的開(kāi)發(fā)或者修改,稱該產(chǎn)品完成了一次迭代;在實(shí)際開(kāi)發(fā)過(guò)程中,一般使用逐步求精的方法,先選出最重要的一部分產(chǎn)品進(jìn)行開(kāi)發(fā),然后再選出次重要的進(jìn)行開(kāi)發(fā),這種一部分一部分開(kāi)發(fā)的過(guò)程稱為增量。
迭代與增量是交替使用的。當(dāng)一個(gè)產(chǎn)品在開(kāi)發(fā)的過(guò)程中,它會(huì)經(jīng)歷多次增量;每次增量,都會(huì)對(duì)至少一個(gè)工作流進(jìn)行修改,有時(shí)還會(huì)對(duì)之前已完成的部分進(jìn)行修改,這就產(chǎn)生了迭代。每次增量的工作都需要進(jìn)行多次迭代后才能完成。每次迭代都會(huì)進(jìn)行測(cè)試,在某種程度上對(duì)產(chǎn)品的正確性做出保證。
每次迭代-增量就是不斷地重復(fù)使用瀑布模型。

迭代-增量模型的優(yōu)點(diǎn)

  • 多次驗(yàn)證軟件產(chǎn)品的正確性。由于每次迭代后都會(huì)進(jìn)行測(cè)試,因此可以反復(fù)驗(yàn)證已完成部分的正確性。
  • 確定底層結(jié)構(gòu)的魯棒性。由于是分塊開(kāi)發(fā),并且每次要修改之前完成的代碼,所以必須要求底層結(jié)構(gòu)的魯棒性(可擴(kuò)展性)要好。
  • 可以盡早降低風(fēng)險(xiǎn)。對(duì)于部分重要模塊的開(kāi)發(fā)可以讓開(kāi)發(fā)組織在花費(fèi)較少預(yù)算的情況下對(duì)于這個(gè)項(xiàng)目能否按時(shí)按預(yù)算完成有一定的預(yù)見(jiàn)性,從而決定是否要繼續(xù)這個(gè)項(xiàng)目。
  • 可以隨時(shí)獲得軟件的工作版本。由于要求所開(kāi)發(fā)的產(chǎn)品是能夠被測(cè)試的,因此可以隨時(shí)獲得能運(yùn)行的軟件版本。這樣的話,開(kāi)發(fā)組織可以先將一部分的產(chǎn)品給予客戶進(jìn)行測(cè)試,獲得對(duì)于產(chǎn)品修改的意見(jiàn);同時(shí),對(duì)于部分產(chǎn)品的預(yù)先使用也可以讓客戶盡早開(kāi)始熟悉新的軟件,降低學(xué)習(xí)成本。

其他生命周期模型

邊寫(xiě)邊改生命周期模型

《面向?qū)ο筌浖こ獭饭P記——1-2章,面向?qū)ο筌浖こ?軟件工程,筆記
顧名思義,先實(shí)現(xiàn)軟件的一個(gè)初始版本,然后直接交給客戶,客戶有什么不滿意的拿回來(lái)修改,如此反復(fù),直到軟件退役。這種模型的缺點(diǎn)很明顯,由于沒(méi)有任何文檔,沒(méi)有經(jīng)過(guò)詳細(xì)的分析和設(shè)計(jì),可能會(huì)在交付后維護(hù)時(shí)產(chǎn)生大量錯(cuò)誤,由此產(chǎn)生高昂的成本;沒(méi)有文檔也為維護(hù)造成了極大的困難。

瀑布生命周期模型

《面向?qū)ο筌浖こ獭饭P記——1-2章,面向?qū)ο筌浖こ?軟件工程,筆記
與上文不同的是,完成的瀑布生命周期模型包括交付后維護(hù)和退役階段,其中交付后維護(hù)時(shí),可以返回到任何一個(gè)開(kāi)發(fā)階段進(jìn)行維護(hù),并隨瀑布逐漸回到交付后維護(hù)階段。
瀑布模型是文檔驅(qū)動(dòng)的,即約定每個(gè)階段都要提供文檔。這可以方便開(kāi)發(fā)人員在修改產(chǎn)品時(shí)快速地找到方法。
然而,瀑布模型也有缺點(diǎn):

  • 雖然瀑布模型是文檔驅(qū)動(dòng)的,但是大部分情況下只有開(kāi)發(fā)人員能看懂文檔,客戶是看不懂的,所以客戶不能主動(dòng)提出文檔哪里有錯(cuò)漏,有可能導(dǎo)致理解偏差。
  • 在瀑布模型中,只有整個(gè)產(chǎn)品都被實(shí)現(xiàn)出來(lái),客戶才能拿到第一個(gè)版本。這意味著如果有理解偏差,那么需要花費(fèi)高昂的代價(jià)修改產(chǎn)品,有時(shí)甚至需要重新開(kāi)發(fā)產(chǎn)品。

為了克服缺點(diǎn),軟件工程師可以采用UML圖等通俗易懂的語(yǔ)言撰寫(xiě)文檔,以便讓客戶也能盡量看懂。

快速原型生命周期模型

《面向?qū)ο筌浖こ獭饭P記——1-2章,面向?qū)ο筌浖こ?軟件工程,筆記
快速原型生命周期模型中,開(kāi)發(fā)團(tuán)隊(duì)先處理一部分比較重要的需求,并將這些需求快速實(shí)現(xiàn)成一個(gè)可以讓客戶使用的版本,這個(gè)版本稱作快速原型。如果這個(gè)“預(yù)告版”中實(shí)現(xiàn)的大多數(shù)需求客戶都比較滿意,團(tuán)隊(duì)就可以編制規(guī)格說(shuō)明文檔。
這樣處理讓后續(xù)開(kāi)發(fā)時(shí)不需要進(jìn)行像瀑布模型那樣的反饋循環(huán),因?yàn)榭蛻魧?duì)快速原型的反饋幫助修正了團(tuán)隊(duì)對(duì)于需求的錯(cuò)誤理解,因此可以期望規(guī)格說(shuō)明文檔和設(shè)計(jì)中的錯(cuò)誤都比較少,從而認(rèn)為實(shí)現(xiàn)中的錯(cuò)誤也會(huì)比較少。
快速原型的唯一作用是確定客戶的真實(shí)需求,一旦達(dá)成目標(biāo),就應(yīng)丟棄快速原型并保留得到的經(jīng)驗(yàn)。因此,快速原型構(gòu)建的唯一目標(biāo)就是快速,快速構(gòu)建原型,快速修改需求。

開(kāi)源生命周期模型

《面向?qū)ο筌浖こ獭饭P記——1-2章,面向?qū)ο筌浖こ?軟件工程,筆記
開(kāi)源生命周期模型包含三個(gè)階段:

  1. 某個(gè)組織或某個(gè)人開(kāi)發(fā)一個(gè)初始版本并發(fā)布給想要使用這個(gè)程序的人,使用程序的人同時(shí)也能看到源代碼。
  2. 使用這個(gè)程序的人中有一部分愿意閱讀源代碼并找出其中的缺陷或者按照自己的想法進(jìn)行擴(kuò)展,這些人被稱為外圍小組。他們會(huì)將這些修改作為報(bào)告提交給負(fù)責(zé)管理開(kāi)源項(xiàng)目的核心小組,有時(shí)只是發(fā)現(xiàn)了bug,但沒(méi)有找到代碼中的缺陷,也可以作為報(bào)告提交。如果是缺陷報(bào)告,核心小組成員會(huì)選擇將修復(fù)這些缺陷的任務(wù)自己完成或交給外圍小組成員,但最后所有對(duì)代碼的修改都由核心小組成員安裝到軟件中。

開(kāi)源軟件的更新速度通常很快,因?yàn)樗麄儽小氨M早發(fā)布,經(jīng)常發(fā)布”的原則。
可以發(fā)現(xiàn),開(kāi)源生命周期模型中沒(méi)有規(guī)格說(shuō)明和設(shè)計(jì)文檔,但因?yàn)殚_(kāi)源領(lǐng)域中有些成員出色的能力,開(kāi)源軟件有些也有很高的實(shí)用性,但所有開(kāi)源產(chǎn)品最終的下場(chǎng)都是退役。

敏捷過(guò)程

極限編程是一種新的軟件開(kāi)發(fā)方法。下面是極限編程的步驟:

  1. 首先,開(kāi)發(fā)團(tuán)隊(duì)確定客戶想要產(chǎn)品支持哪些特征,對(duì)于每個(gè)特征,開(kāi)發(fā)團(tuán)隊(duì)告知客戶實(shí)現(xiàn)該特征耗費(fèi)的時(shí)間和成本。
  2. 客戶通過(guò)成本效益分析選定產(chǎn)品需要包含的特征。團(tuán)隊(duì)將這些特征分解為更小的任務(wù)。
  3. 團(tuán)隊(duì)成員為每個(gè)任務(wù)編寫(xiě)測(cè)試用例,這就是所謂的測(cè)試驅(qū)動(dòng)開(kāi)發(fā)。接下來(lái)進(jìn)行結(jié)對(duì)編程來(lái)編寫(xiě)代碼,即兩名程序員在同一臺(tái)計(jì)算機(jī)上協(xié)同運(yùn)作,每15到20分鐘換人編寫(xiě)代碼,此時(shí)不便攜代碼的人負(fù)責(zé)仔細(xì)檢查代碼。編寫(xiě)完成并通過(guò)測(cè)試用例后,將任務(wù)集成到產(chǎn)品中。理想情況下,完成每一任務(wù)的時(shí)間不超過(guò)幾個(gè)小時(shí)。通常由多個(gè)小組同時(shí)結(jié)對(duì)完成任務(wù),每天將小組打亂,以讓不同的成員互相學(xué)習(xí)。

極限編程(XP)有許多新特性:

  • XP團(tuán)隊(duì)的計(jì)算機(jī)位于某個(gè)被隔斷的大房間的中央。
  • 客戶代表一直與XP團(tuán)隊(duì)一起工作。
  • 沒(méi)有程序員能一直工作兩個(gè)星期。
  • 沒(méi)有規(guī)格說(shuō)明文檔,但所有XP團(tuán)隊(duì)成員都負(fù)責(zé)需求,分析,設(shè)計(jì),編碼和測(cè)試。
  • 沒(méi)有總體設(shè)計(jì),在產(chǎn)品開(kāi)發(fā)過(guò)程中可以一直修改設(shè)計(jì),這個(gè)過(guò)程稱為重構(gòu),只要測(cè)試用例尚未運(yùn)行就可以重組代碼,直到XP團(tuán)隊(duì)認(rèn)為設(shè)計(jì)簡(jiǎn)潔直觀并能正確運(yùn)行所有測(cè)試用例為止。

XP編程的原則是YAGNI(你不會(huì)需要它)和DTSTTCPW(做可能起作用的最簡(jiǎn)單的事情),即讓特征數(shù)目最小化,絕不超出客戶實(shí)際所需。
XP編程是敏捷編程所包含的眾多新型范型中的一種。敏捷過(guò)程極少?gòu)?qiáng)調(diào)分析和設(shè)計(jì),并且要求對(duì)需求修改做出快速響應(yīng),因此要求更好的進(jìn)行與客戶之間的協(xié)作。
敏捷過(guò)程的特征之一是經(jīng)常交付工作軟件,理想情況下每2-3周交付一次。因此要采用時(shí)間定量法。在敏捷編程中,常常給某個(gè)任務(wù)定出三周的時(shí)間,三周后進(jìn)行新版本的迭代。一方面,客戶知道3周就可以讓產(chǎn)品增加新功能;另一方面,團(tuán)隊(duì)成員直到他們只有3周來(lái)完成任務(wù)。在這3周中,客戶不能再提出對(duì)該次迭代所進(jìn)行的任務(wù)的修改,也不能再干擾團(tuán)隊(duì)。但是,如果實(shí)在無(wú)法完成任務(wù),則可能要減小工作量??傊?,敏捷過(guò)程要求確定的時(shí)間而非確定的工作量。
敏捷過(guò)程的另一個(gè)特征就是在每天固定的時(shí)間開(kāi)一個(gè)短會(huì)。在短會(huì)期間,團(tuán)隊(duì)成員圍著桌子站著(不就座有助于在15分鐘內(nèi)結(jié)束會(huì)議)。每個(gè)團(tuán)隊(duì)成員一次回答五個(gè)問(wèn)題:

  1. 從昨天會(huì)議到現(xiàn)在我做了什么?
  2. 今天我正在做什么?
  3. 要順利完成任務(wù),存在什么問(wèn)題?
  4. 我們忽視了什么?
  5. 我學(xué)到了什么,可以同團(tuán)隊(duì)分享什么?

站立會(huì)議是為了發(fā)現(xiàn)而非解決問(wèn)題,后續(xù)會(huì)議負(fù)責(zé)解決問(wèn)題,這個(gè)會(huì)議最好安排在站立會(huì)議之后立即舉行。
總之,敏捷過(guò)程具有兩個(gè)原則:交流,盡可能快的完成用戶需求。
敏捷過(guò)程適用于進(jìn)行小規(guī)模的代碼開(kāi)發(fā),但中型和大型的產(chǎn)品就需要更規(guī)范的過(guò)程。雖然如此,但如果敏捷過(guò)程減少了交付后維護(hù)的成本,則它們就會(huì)被廣泛采用,然而交付后如果要進(jìn)行增強(qiáng)性維護(hù)性質(zhì)的重構(gòu),則成本就會(huì)很高。
盡管受人詬病,然而其中的某些特征也具有可行性并可能被未來(lái)的主流軟件工程實(shí)踐所采納。

同步穩(wěn)定生命周期模型

微軟公司的大部分COTS軟件包都使用這類(lèi)模型來(lái)開(kāi)發(fā)。
首先與軟件包的眾多潛在客戶會(huì)談,確定基本需求。抽取出要完成的特征列表并分為3-4個(gè)模塊,以重要程度來(lái)劃分。將每個(gè)模塊分給許多小型團(tuán)隊(duì)并行開(kāi)發(fā),每天工作結(jié)束時(shí),所有團(tuán)隊(duì)相互同步,即將已完成的組件集成,對(duì)得到的產(chǎn)品進(jìn)行測(cè)試。每個(gè)模塊完成時(shí)進(jìn)行穩(wěn)定操作,將檢測(cè)到的所有錯(cuò)誤都修正,然后凍結(jié)模塊,即不再修改規(guī)格說(shuō)明文檔。
每天同步,確保每個(gè)組件都能集成在一起,可以讓開(kāi)發(fā)人員盡早了解產(chǎn)品的運(yùn)作,還可以在過(guò)程中修改需求,甚至當(dāng)規(guī)格說(shuō)明文檔不完整時(shí)也可以采用這種生命周期模型。

螺旋生命周期模型

《面向?qū)ο筌浖こ獭饭P記——1-2章,面向?qū)ο筌浖こ?軟件工程,筆記
螺旋生命周期模型是一種風(fēng)險(xiǎn)驅(qū)動(dòng)模型,即按照當(dāng)前階段評(píng)估的風(fēng)險(xiǎn)來(lái)決定下一階段的開(kāi)發(fā)是否進(jìn)行。
一開(kāi)始,開(kāi)發(fā)一個(gè)概念驗(yàn)證模型(非快速原型),雖然這個(gè)原型也是展示項(xiàng)目中比較重要的一部分,但這一部分是開(kāi)發(fā)團(tuán)隊(duì)認(rèn)為最有可能會(huì)引起風(fēng)險(xiǎn)的部分,即可能會(huì)引起不滿足約束條件的部分。這個(gè)原型可以幫助開(kāi)發(fā)人員估算整個(gè)項(xiàng)目的部分風(fēng)險(xiǎn),以決定是否能降低風(fēng)險(xiǎn)以繼續(xù)進(jìn)行項(xiàng)目或直接終止項(xiàng)目。
接下來(lái),在每個(gè)開(kāi)發(fā)階段前,先進(jìn)行風(fēng)險(xiǎn)分析。如果存在某些主要的風(fēng)險(xiǎn)無(wú)法被降低到可接受的程度,則立即停止項(xiàng)目。
但是,原型法對(duì)某些方面的風(fēng)險(xiǎn)評(píng)估沒(méi)有用處。比如,關(guān)鍵成員辭職。另外,開(kāi)發(fā)一個(gè)小的原型不能驗(yàn)證開(kāi)發(fā)團(tuán)隊(duì)開(kāi)發(fā)大型產(chǎn)品的能力,因?yàn)殚_(kāi)發(fā)不同規(guī)模的產(chǎn)品需要的能力水平不同。
下圖是完整的螺旋模型:
《面向?qū)ο筌浖こ獭饭P記——1-2章,面向?qū)ο筌浖こ?軟件工程,筆記
縱軸表示所花費(fèi)的累積成本,旋轉(zhuǎn)角表示螺旋進(jìn)展,項(xiàng)目的實(shí)際開(kāi)發(fā)流程按照螺旋的方向進(jìn)行。每個(gè)象限代表不同的含義。一次開(kāi)發(fā)從左上象限開(kāi)始,左上象限進(jìn)行確定目標(biāo)、選擇、約束;右上象限進(jìn)行風(fēng)險(xiǎn)分析并開(kāi)發(fā)各個(gè)階段的原型;右下象限進(jìn)行各個(gè)階段的開(kāi)發(fā),左下象限進(jìn)行下一階段的計(jì)劃。
螺旋模型的優(yōu)點(diǎn)在于強(qiáng)調(diào)目標(biāo)選擇和條件約束,支持已有軟件的重用,將軟件質(zhì)量作為特定目標(biāo);可以保證測(cè)試是適量的,不會(huì)浪費(fèi)預(yù)算也不會(huì)測(cè)試不足;由于在模型中將交付后維護(hù)設(shè)為一個(gè)平等的階段,可以保證軟件人員不會(huì)輕視交付后維護(hù)。
螺旋模型的缺點(diǎn)在于:

  1. 螺旋模型專(zhuān)門(mén)用于組織內(nèi)部開(kāi)發(fā)大型軟件。由于可能隨時(shí)終止項(xiàng)目,如果與組織外的客戶簽訂契約,那么螺旋模型就沒(méi)有了實(shí)用性,因?yàn)樽詈蟊仨毥桓懂a(chǎn)品。
  2. 螺旋模型僅適用于大型軟件的開(kāi)發(fā),因?yàn)閷?duì)于小型項(xiàng)目來(lái)說(shuō),風(fēng)險(xiǎn)分析的成本過(guò)高。
  3. 螺旋模型中,如果開(kāi)發(fā)團(tuán)隊(duì)不善于進(jìn)行風(fēng)險(xiǎn)分析,那么有可能低估項(xiàng)目的風(fēng)險(xiǎn)以讓螺旋模型變得全無(wú)用處,這限制了它的可用性。
  4. 螺旋模型將每個(gè)階段看作相對(duì)獨(dú)立的,然而軟件開(kāi)發(fā)是迭代與增量的過(guò)程。

總結(jié)

各個(gè)生命周期模型的優(yōu)缺點(diǎn)如下:
《面向?qū)ο筌浖こ獭饭P記——1-2章,面向?qū)ο筌浖こ?軟件工程,筆記
《面向?qū)ο筌浖こ獭饭P記——1-2章,面向?qū)ο筌浖こ?軟件工程,筆記
我是霜_哀,在算法之路上努力前行的一位萌新,感謝你的閱讀!如果覺(jué)得好的話,可以關(guān)注一下,我會(huì)在將來(lái)帶來(lái)更多更全面的知識(shí)講解!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-739549.html

到了這里,關(guān)于《面向?qū)ο筌浖こ獭饭P記——1-2章的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 軟件工程——第9章面向?qū)ο蠓椒▽W(xué)引論知識(shí)點(diǎn)整理

    軟件工程——第9章面向?qū)ο蠓椒▽W(xué)引論知識(shí)點(diǎn)整理

    本專(zhuān)欄是博主個(gè)人筆記,主要目的是利用碎片化的時(shí)間來(lái)記憶軟工知識(shí)點(diǎn),特此聲明! 1.當(dāng)前最好的軟件開(kāi)發(fā)技術(shù)是? 2.面向?qū)ο蟮脑瓌t是什么?

    2024年02月13日
    瀏覽(23)
  • OpenHarmony生態(tài)如何建?北航牽頭發(fā)布《面向OpenHarmony的軟件工程研究路線圖》

    OpenHarmony生態(tài)如何建?北航牽頭發(fā)布《面向OpenHarmony的軟件工程研究路線圖》

    CODEWISDOM 2023年10月26日,OpenHarmony的4.0版本正式上線,引發(fā)了用戶,開(kāi)發(fā)者和學(xué)術(shù)圈廣泛討論。作為新興的移動(dòng)端平臺(tái),OpenHarmony以其突破性的創(chuàng)新頻頻“出圈”,至今已經(jīng)走過(guò)三載春秋。以史為鑒,可以知興替。為了更好地了解OpenHarmony平臺(tái)的特點(diǎn)和優(yōu)勢(shì),現(xiàn)有移動(dòng)平臺(tái)的不足

    2024年01月17日
    瀏覽(15)
  • 軟件工程(八) UML之類(lèi)圖與對(duì)象圖

    軟件工程(八) UML之類(lèi)圖與對(duì)象圖

    類(lèi)圖(class diagram) 描述 一組類(lèi) 、接口、協(xié)作和它們之間的關(guān)系 對(duì)象圖(object diagram) 描述 一組對(duì)象 及它們之間的關(guān)系、 對(duì)象圖 描述了在 類(lèi)圖 中所建立的 事物實(shí)例的靜態(tài)快照 。 類(lèi)圖和對(duì)象圖基本上是一樣的,只是對(duì)象圖一般會(huì)在類(lèi)前面有個(gè)冒號(hào),或者變量名:類(lèi)名,

    2024年02月11日
    瀏覽(22)
  • 軟件工程筆記001

    2023年9月5日,周二上午 軟件工程的目標(biāo)是成功地開(kāi)發(fā)一個(gè)軟件: 較低的開(kāi)發(fā)成本 能按時(shí)交付軟件 開(kāi)發(fā)出來(lái)的軟件該有的功能都有 開(kāi)發(fā)出來(lái)的軟件運(yùn)行效率高 開(kāi)發(fā)出來(lái)的軟件可靠性高 開(kāi)發(fā)出來(lái)的軟件易于維護(hù) ? 概念 軟件生存周期是指軟件從提出開(kāi)發(fā)到報(bào)廢的過(guò)程。 比如,

    2024年02月10日
    瀏覽(21)
  • 【讀書(shū)筆記】《軟件工程導(dǎo)論》

    【讀書(shū)筆記】《軟件工程導(dǎo)論》

    目錄 一、軟件工程概述 二、啟動(dòng)階段 三、計(jì)劃階段 四、實(shí)施階段 五、收尾階段 軟件危機(jī): 在計(jì)算機(jī)軟件的開(kāi)發(fā)和維護(hù)過(guò)程中遇到的一系列嚴(yán)重問(wèn)題。 軟件危機(jī)的產(chǎn)生與自身的特點(diǎn)有關(guān),還與軟件開(kāi)發(fā)、管理的方法不正確有關(guān)。 軟件危機(jī)的典型表現(xiàn): 對(duì)軟件開(kāi)發(fā)的進(jìn)度和

    2024年02月11日
    瀏覽(24)
  • 軟考筆記——9.軟件工程

    軟考筆記——9.軟件工程

    軟件工程的基本原理: 用分階段的生命周期計(jì)劃嚴(yán)格管理、堅(jiān)持進(jìn)行階段評(píng)審、實(shí)現(xiàn)嚴(yán)格的產(chǎn)品控制、采用現(xiàn)代程序設(shè)計(jì)技術(shù)、結(jié)果應(yīng)能清除的審查、開(kāi)發(fā)小組的人員應(yīng)少而精、承認(rèn)不斷改進(jìn)軟件工程事件的必要性。 軟件工程的基本要素: 方法、工具、過(guò)程 軟件生存周期:

    2024年02月12日
    瀏覽(16)
  • 軟考高級(jí)架構(gòu)師筆記-8軟件工程

    軟考高級(jí)架構(gòu)師筆記-8軟件工程

    前文回顧:

    2024年02月11日
    瀏覽(21)
  • 【軟考程序員學(xué)習(xí)筆記】——軟件工程

    【軟考程序員學(xué)習(xí)筆記】——軟件工程

    ? 目錄 ??一、軟件存周期 ??二、軟件生存周期模型 ??三、軟件開(kāi)發(fā)方法 ??四、需求分析 ??五、內(nèi)聚和耦合 ??模塊內(nèi)的獨(dú)立性--內(nèi)聚性 ??模塊間的獨(dú)立性--耦合性 ??六、軟件測(cè)試 ??黑盒測(cè)試 ??白盒測(cè)試 ??七、V模型 ??八、軟件維護(hù) ??九、軟件質(zhì)量模型 問(wèn)題定義

    2024年02月12日
    瀏覽(20)
  • STM32學(xué)習(xí)筆記(一):簡(jiǎn)介、軟件安裝及新建工程

    STM32學(xué)習(xí)筆記(一):簡(jiǎn)介、軟件安裝及新建工程

    本文內(nèi)容參考自以下內(nèi)容: B站UP主江科大自化協(xié):STM32入門(mén)教程,鏈接:https://www.bilibili.com/video/BV1th411z7sn?spm_id_from=333.337.search-card.all.click 《零死角玩轉(zhuǎn)stm32—f103指南者》、《普中STM32F1xx開(kāi)發(fā)攻略v1.0》 鏈接:https://pan.baidu.com/s/1DfVTBpOT_JXgvK_AVQCouA?pwd=1024 提取碼:1024 1. STM32的基

    2024年01月23日
    瀏覽(28)
  • 【通義千問(wèn)】大模型Qwen GitHub開(kāi)源工程學(xué)習(xí)筆記(1)-- 使用指南、依賴庫(kù)和軟件

    【通義千問(wèn)】大模型Qwen GitHub開(kāi)源工程學(xué)習(xí)筆記(1)-- 使用指南、依賴庫(kù)和軟件

    9月25日,阿里云開(kāi)源通義千問(wèn)140億參數(shù)模型Qwen-14B及其對(duì)話模型Qwen-14B-Chat,免費(fèi)可商用。 立馬就到了GitHub去fork。 GitHub: GitHub - QwenLM/Qwen: The official repo of Qwen (通義千問(wèn)) chat pretrained large language model proposed by Alibaba Cloud. 官方的技術(shù)資料也下載了,看這里==https://qianwen-res.oss-cn-b

    2024年02月03日
    瀏覽(19)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包