整套電子課件:軟件工程與項(xiàng)目實(shí)踐教程_第1頁(yè)
整套電子課件:軟件工程與項(xiàng)目實(shí)踐教程_第2頁(yè)
整套電子課件:軟件工程與項(xiàng)目實(shí)踐教程_第3頁(yè)
整套電子課件:軟件工程與項(xiàng)目實(shí)踐教程_第4頁(yè)
整套電子課件:軟件工程與項(xiàng)目實(shí)踐教程_第5頁(yè)
已閱讀5頁(yè),還剩163頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

項(xiàng)目一成立項(xiàng)目小組項(xiàng)目問(wèn)題某軟件公司剛成立,從學(xué)校招聘了一些新的開發(fā)人員。最近,該公司通過(guò)關(guān)系從市場(chǎng)接到一個(gè)網(wǎng)上書店的軟件項(xiàng)目。由于公司剛成立,新招的開發(fā)人員都只有編程的經(jīng)驗(yàn),沒(méi)有完整的項(xiàng)目開發(fā)經(jīng)驗(yàn)。該公司該如何開展網(wǎng)上書店的項(xiàng)目開發(fā)呢?2軟件危機(jī)代價(jià)高進(jìn)度難控制工作量和成本估算難質(zhì)量差維護(hù)難用戶不滿意軟件生產(chǎn)率提高的速度跟不上計(jì)算機(jī)應(yīng)用迅速

普及深入的趨勢(shì)1979年,美國(guó)USGovernmentAccountingOffice的調(diào)查1999年,美國(guó)StandishGroup的調(diào)查3軟件的特點(diǎn)邏輯實(shí)體,具有抽象性軟件生產(chǎn)屬于智力活動(dòng),軟件質(zhì)量控制必須著重于開發(fā)維護(hù)復(fù)雜,與硬件維修有本質(zhì)差別4軟件的特點(diǎn)(續(xù))對(duì)計(jì)算機(jī)系統(tǒng)的依賴性而產(chǎn)生“軟件移植”的問(wèn)題軟件開發(fā)尚未完全走出“手工藝”階段對(duì)軟件人員的要求很高成本昂貴5問(wèn)題歸結(jié)軟件生命期階段計(jì)劃需求設(shè)計(jì)實(shí)現(xiàn)測(cè)試維護(hù)主觀盲目地制定計(jì)劃;成本、資源、工作量估算不準(zhǔn);進(jìn)度計(jì)劃無(wú)法遵循需求提出不明確或者表達(dá)不準(zhǔn);需求錯(cuò)誤;需求說(shuō)明書質(zhì)量不高沒(méi)有統(tǒng)一的、公認(rèn)的方法論和規(guī)范指導(dǎo);設(shè)計(jì)資料不完整;忽視接口;編碼不規(guī)范、難讀;程序文檔不完整;修改隨意,與設(shè)計(jì)有偏差,無(wú)修改記錄變更隨意不規(guī)范;維護(hù)文檔不完整;維護(hù)錯(cuò)誤測(cè)試不充分;測(cè)試文檔不完整;測(cè)試過(guò)程缺乏控制不注意回歸測(cè)試6消除軟件危機(jī)的途徑消除“軟件就是程序”的錯(cuò)誤觀念按照工程化的原則和方法組織軟件開發(fā)工作,是擺脫軟件危機(jī)的一個(gè)主要出路7軟件神話管理人員:我們已經(jīng)有了關(guān)于開發(fā)軟件的標(biāo)準(zhǔn)和規(guī)范的書籍,難道它們不能給人們提供所有其需要知道的信息嗎?如果我們已經(jīng)落后于計(jì)劃,可以增加更多的程序員來(lái)趕上進(jìn)度。8軟件神話用戶:有一個(gè)對(duì)目標(biāo)的概括描述就足以著手編寫程序了,許多細(xì)節(jié)可以在以后再補(bǔ)充。用戶對(duì)軟件的要求不斷變化,然而軟件是柔軟而靈活的,可以輕易地改動(dòng)。9軟件神話軟件開發(fā)人員:所謂軟件開發(fā)就是編寫程序并設(shè)法使它運(yùn)行。在程序真正運(yùn)行之前,沒(méi)有辦法評(píng)估其質(zhì)量。10什么是軟件工程定義(1983,IEEE):軟件工程是開發(fā)、運(yùn)行、維護(hù)和修復(fù)軟件的系統(tǒng)方法三要素:軟件工程方法軟件工程工具軟件工程過(guò)程11軟件工程方法為軟件開發(fā)提供了“如何做”的技術(shù)在時(shí)間上將軟件開發(fā)工作劃分為若干階段,為每一階段規(guī)定了若干任務(wù),并提供為完成這些任務(wù)所需的各種技術(shù)是一種使用早已定義好的技術(shù)集和符號(hào)表示習(xí)慣來(lái)組織軟件生產(chǎn)的過(guò)程12軟件工程工具為支援軟件人員的開發(fā)和維護(hù)活動(dòng)而使用的軟件項(xiàng)目估算工具、需求分析工具、設(shè)計(jì)工具、編程和調(diào)試工具、測(cè)試工具和維護(hù)工具、……13軟件工程過(guò)程將軟件工程的方法和工具綜合起來(lái),達(dá)到合理、及時(shí)地進(jìn)行計(jì)算機(jī)軟件開發(fā)的目的定義方法使用的順序、要求交付的文檔資料、為保證質(zhì)量和協(xié)調(diào)變化所需要的管理、及軟件開發(fā)各個(gè)階段完成的里程碑等14軟件過(guò)程15邊做邊改模型“作坊式”開發(fā),主要問(wèn)題在于:缺少規(guī)劃和設(shè)計(jì)環(huán)節(jié),導(dǎo)致軟件無(wú)法繼續(xù)修改忽略需求環(huán)節(jié)沒(méi)有考慮測(cè)試和程序的可維護(hù)性16瀑布模型自上而下,相互銜接17原型實(shí)現(xiàn)模型先開發(fā)一個(gè)“原型”軟件,完成部分主要功能,展示給用戶并征求意見,然后逐步完善,最終獲得滿意的軟件產(chǎn)品18用戶測(cè)試運(yùn)行原型建造/修改原型

聽取用戶意見增量模型19項(xiàng)目日歷時(shí)間軟件功能性和特征12345第2次增量發(fā)布增量212345第n次增量發(fā)布增量n12345第1次增量發(fā)布增量1┇5部署(發(fā)布,反饋)4構(gòu)造(編碼,測(cè)試)3建模(分析,設(shè)計(jì))2計(jì)劃1交流螺旋模型20極限編程敏捷(Agile)聯(lián)盟讓軟件開發(fā)團(tuán)隊(duì)具有快速工作、響應(yīng)變化能力的價(jià)值觀和原則極限編程:一種敏捷方法。由一系列簡(jiǎn)單卻互相依賴的實(shí)踐組成21敏捷軟件開發(fā)宣言個(gè)體和交互勝過(guò)過(guò)程和工具可以工作的軟件勝過(guò)面面俱到的文檔客戶合作勝過(guò)合同談判響應(yīng)變化勝過(guò)遵循計(jì)劃

雖然上述右項(xiàng)也有價(jià)值,但我們認(rèn)為左項(xiàng)具有更大的價(jià)值。22RUP統(tǒng)一建模過(guò)程23討論假設(shè)你被指定為項(xiàng)目負(fù)責(zé)人,你的任務(wù)是開發(fā)一個(gè)應(yīng)用系統(tǒng),該系統(tǒng)類似于你的小組以前做過(guò)的那些系統(tǒng),但是規(guī)模更大且更復(fù)雜一些??蛻粢呀?jīng)寫出了完整的需求文檔。你將選用哪種項(xiàng)目組結(jié)構(gòu)?為什么?你打算采用哪種軟件過(guò)程模型?為什么?24公司組織結(jié)構(gòu)項(xiàng)目組模型職能模型矩陣形模型25組織結(jié)構(gòu)對(duì)比26程序設(shè)計(jì)小組主程序員制小組民主制小組層次式小組27人員配備28軟件分類系統(tǒng)軟件應(yīng)用軟件工程/科學(xué)軟件嵌入式軟件產(chǎn)品線軟件Web應(yīng)用軟件人工智能軟件29實(shí)訓(xùn)任務(wù)成立5-6人的項(xiàng)目小組選舉項(xiàng)目經(jīng)理選擇實(shí)訓(xùn)項(xiàng)目確定項(xiàng)目章程30項(xiàng)目二策劃網(wǎng)上書店項(xiàng)目問(wèn)題某書店為了進(jìn)一步提書店的企業(yè)形象,同時(shí)借助現(xiàn)有的網(wǎng)絡(luò)技術(shù)來(lái)實(shí)現(xiàn)異地的產(chǎn)品在線展示和銷售,決定開發(fā)一套網(wǎng)上書店。該軟件的主要功能包括:商品管理、配送支付管理、訂單管理、會(huì)員分組、會(huì)員管理、查詢統(tǒng)計(jì)和多項(xiàng)商品促銷功能等。該企業(yè)準(zhǔn)備投入10萬(wàn)元進(jìn)行該系統(tǒng)的開發(fā),時(shí)間要求是5-8周。該軟件項(xiàng)目的計(jì)劃開始時(shí)間是2007.5.1日。項(xiàng)目組長(zhǎng)在接到這個(gè)項(xiàng)目后,由于是初次獨(dú)立承擔(dān)項(xiàng)目,不知道該先做什么。要解決的問(wèn)題需要做什么?要如何去做?可不可能完成?可行性分析在市場(chǎng)調(diào)研的基礎(chǔ)上,分析立項(xiàng)的必要性(是否有市場(chǎng)前景)和可能性(是否有能力實(shí)現(xiàn)),并具體列出系統(tǒng)的功能、性能、接口和運(yùn)行環(huán)境等方面的需求、當(dāng)前客戶群的情況,以及投入產(chǎn)出分析。可行性分析任務(wù)技術(shù)可行性現(xiàn)有技術(shù)、資源及限制能否支持和實(shí)現(xiàn)系統(tǒng)的功能、性能。主要是技術(shù)風(fēng)險(xiǎn)問(wèn)題開發(fā)的風(fēng)險(xiǎn)資源的有效性技術(shù)儲(chǔ)備可行性分析任務(wù)經(jīng)濟(jì)可行性進(jìn)行成本估算及效益評(píng)估,確定項(xiàng)目是否值得開發(fā)成本-效益風(fēng)險(xiǎn)分析長(zhǎng)期公司經(jīng)營(yíng)策略開發(fā)成本和資源潛在的市場(chǎng)前景可行性分析任務(wù)社會(huì)可行性系統(tǒng)開發(fā)后能否運(yùn)行,是否存在合同、責(zé)任、侵權(quán)、用戶組織管理等方面的問(wèn)題是否存在任何侵犯、妨礙他人責(zé)任問(wèn)題運(yùn)行方式在用戶組織是否可行現(xiàn)有的管理制度、人員素質(zhì)和操作方式是否可行可行性分析過(guò)程確定項(xiàng)目規(guī)模和目標(biāo)研究現(xiàn)行系統(tǒng)(如果存在)建立系統(tǒng)的高級(jí)邏輯模型,用系統(tǒng)流程圖或數(shù)據(jù)流圖(DFD圖)描述提出實(shí)現(xiàn)高層邏輯模型的各種方案,并對(duì)各方案進(jìn)行評(píng)價(jià)推薦可行的方案編寫可行性報(bào)告確定項(xiàng)目規(guī)模和目標(biāo)問(wèn)題定義階段確定的系統(tǒng)規(guī)模和目標(biāo)進(jìn)一步確認(rèn);改正含糊或不確切的敘述,清晰地描述對(duì)目標(biāo)系統(tǒng)的限制和約束我們認(rèn)為用戶要的?

用戶要的研究目前正在使用的系統(tǒng)正在使用的系統(tǒng)人工系統(tǒng):需要計(jì)算機(jī)化計(jì)算機(jī)系統(tǒng):需要改進(jìn)或完善研究現(xiàn)有系統(tǒng)的文檔資料和使用手冊(cè),了解:原系統(tǒng)能做什么;為什么這樣做;現(xiàn)有系統(tǒng)使用的代價(jià);用戶對(duì)新系統(tǒng)的要求;該系統(tǒng)的邊界(與其他系統(tǒng)的關(guān)系).建立系統(tǒng)的高級(jí)邏輯模型根據(jù)對(duì)現(xiàn)有系統(tǒng)的研究,導(dǎo)出現(xiàn)有系統(tǒng)的邏輯模型,設(shè)計(jì)出目標(biāo)系統(tǒng)的邏輯模型.使用的工具:系統(tǒng)流程圖數(shù)據(jù)流圖數(shù)據(jù)字典…………抽象實(shí)現(xiàn)改進(jìn)老系統(tǒng)物理模型模型邏輯模型新模型邏輯模型新系統(tǒng)物理模型技術(shù)評(píng)估技術(shù)的成熟程度實(shí)驗(yàn)室技術(shù)經(jīng)過(guò)中試的技術(shù)已經(jīng)工業(yè)化應(yīng)用的技術(shù)市場(chǎng)需求顯在潛在:轉(zhuǎn)化為顯在的條件競(jìng)爭(zhēng)態(tài)勢(shì):與競(jìng)爭(zhēng)技術(shù)相比,所采用技術(shù)的優(yōu)勢(shì)及缺陷技術(shù)轉(zhuǎn)換成本支撐體系與條件:原料、銷售網(wǎng)絡(luò)、用戶體系、政策技術(shù)發(fā)展趨勢(shì)及所采用技術(shù)的發(fā)展前景技術(shù)方案選擇要考慮的制約條件需求制約:現(xiàn)存的需求結(jié)構(gòu)及需求結(jié)構(gòu)可能的變化資源制約:資金、人力資源、自然資源、其它要素環(huán)境制約:經(jīng)濟(jì)技術(shù)環(huán)境、社會(huì)文化環(huán)境、自然環(huán)境選擇原則經(jīng)濟(jì)性原則:以最小的投入取得最好的效果發(fā)展原則:發(fā)展的前景及適應(yīng)發(fā)展的能力兼容性原則:與原有經(jīng)濟(jì)、技術(shù)、環(huán)境、社會(huì)的兼容性相關(guān)效果原則:相關(guān)的經(jīng)濟(jì)、技術(shù)、環(huán)境、社會(huì)效果選擇視角技術(shù)先進(jìn)性技術(shù)適用性軟件項(xiàng)目計(jì)劃工作確定詳細(xì)的項(xiàng)目實(shí)施范圍定義遞交的工作成果評(píng)估實(shí)施過(guò)程中主要的風(fēng)險(xiǎn)制定項(xiàng)目實(shí)施的時(shí)間計(jì)劃、成本和預(yù)算計(jì)劃、人力資源計(jì)劃項(xiàng)目目標(biāo)項(xiàng)目目標(biāo)就是實(shí)施項(xiàng)目所要達(dá)到的期望結(jié)果,是衡量項(xiàng)目成功與否的標(biāo)準(zhǔn)。約束性目標(biāo)進(jìn)度、費(fèi)用、質(zhì)量三重約束成果性目標(biāo)要完成的產(chǎn)品WBS(工作結(jié)構(gòu)分解)通過(guò)工作分解的方式,將工作范圍細(xì)分為活動(dòng),然后對(duì)每項(xiàng)活動(dòng)分配時(shí)間和資源,而活動(dòng)結(jié)果的總和就是工作范圍任務(wù)分解就是將項(xiàng)目可交付成果分成幾個(gè)小的、更易管理的單元。制訂WBS計(jì)劃步驟分解工作任務(wù)將一個(gè)總的工作范圍逐漸細(xì)分到合適的粒度,以便對(duì)任務(wù)計(jì)劃、執(zhí)行和控制定義活動(dòng)依賴關(guān)系對(duì)這些活動(dòng)之間的依賴關(guān)系做出定義分配時(shí)間和資源為每項(xiàng)活動(dòng)分配相應(yīng)的時(shí)間和資源分解步驟總項(xiàng)目子項(xiàng)目或主體工作任務(wù)主要工作任務(wù)次要工作任務(wù)具體工作包WBS分解結(jié)果要求可管理、可定量測(cè)量、可獨(dú)立分配任務(wù)的可以進(jìn)行費(fèi)用和時(shí)間的估計(jì)不體現(xiàn)工期和活動(dòng)的先后順序包括管理活動(dòng)分解完后需進(jìn)行核對(duì)計(jì)劃制定的原則具體的(Specific)反對(duì)陳詞濫調(diào)和假、大、空的套話,應(yīng)該學(xué)會(huì)用簡(jiǎn)短的語(yǔ)言明確說(shuō)出目標(biāo)??珊饬康模∕easurable)盡量用量化語(yǔ)言來(lái)描述你的目標(biāo),而不是你的目的和愿望。能夠達(dá)到(Attainable)制定的目標(biāo)應(yīng)該是經(jīng)過(guò)科學(xué)論證可以實(shí)現(xiàn)的,而不是主觀臆斷和憑空想象。相關(guān)的(Relevant)制定的目標(biāo)應(yīng)該與目的是相關(guān)聯(lián)的,目標(biāo)是實(shí)現(xiàn)目的步驟。限定時(shí)間的(Time-Bound)必須有起點(diǎn)、終點(diǎn)和時(shí)間段。項(xiàng)目三需求分析項(xiàng)目問(wèn)題軟件開發(fā)人員經(jīng)常困惑于軟件分明是按照需求做出來(lái)的,可是為什么客戶仍不滿意客戶總是困惑為什么軟件和自己想要的差距會(huì)那么大現(xiàn)象的起因該怎么解決需求分析任務(wù)要準(zhǔn)確地定義新系統(tǒng)的目標(biāo),為了滿足用戶需求,回答系統(tǒng)必須“做什么”的問(wèn)題需求分析的過(guò)程調(diào)查研究分析與綜合編寫需求分析文檔需求分析評(píng)審準(zhǔn)備調(diào)查需求調(diào)查準(zhǔn)備工作圍繞三項(xiàng)展開:(1)調(diào)查什么?(2)通過(guò)什么方式去調(diào)查?(3)“何人”在“何時(shí)”調(diào)查?準(zhǔn)備調(diào)查首先,需求分析員應(yīng)當(dāng)起草需求調(diào)查問(wèn)題表,將調(diào)查重點(diǎn)鎖定在該問(wèn)題表內(nèi),否則調(diào)查工作將變得漫無(wú)邊際。問(wèn)題表可以有多份,隨著調(diào)查的深入,問(wèn)題表將不斷地被細(xì)化。根據(jù)經(jīng)驗(yàn),用戶通常沒(méi)有耐心回答復(fù)雜的“論述題”,所以問(wèn)題表應(yīng)當(dāng)以“選擇題”和“是非題”為主。準(zhǔn)備調(diào)查其次,需求分析員應(yīng)當(dāng)確定需求調(diào)查的方式,例如:與用戶交談,向用戶提問(wèn)題。參觀用戶的工作流程,觀察用戶的操作。向用戶群體發(fā)調(diào)查問(wèn)卷。與同行、專家交談,聽取他們的意見。分析已經(jīng)存在的同類軟件產(chǎn)品,提取需求。從行業(yè)標(biāo)準(zhǔn)、規(guī)則中提取需求。從Internet上搜查相關(guān)資料。準(zhǔn)備調(diào)查最后,需求分析員與被調(diào)查者建立聯(lián)系,確定調(diào)查的時(shí)間、地點(diǎn)、人員等,撰寫需求調(diào)查計(jì)劃。要特別留意的是不要漏掉典型的用戶。調(diào)查與記錄準(zhǔn)備工作完畢后,需求分析員按照計(jì)劃執(zhí)行調(diào)查。在調(diào)查過(guò)程中隨時(shí)記錄(或存儲(chǔ))需求信息,建議采用表格的形式。需求分析技術(shù)在傳統(tǒng)的和面向?qū)ο蟮拈_發(fā)過(guò)程中,常常通過(guò)典型的使用情景來(lái)了解需求1992年由Jacobson提出了用例(UserCase)什么是用例建模?一種描述功能性需求的方法清晰地定義系統(tǒng)的邊界詳細(xì)描述系統(tǒng)和外部環(huán)境的交互用例模型不僅僅是圖形用例建模中的主要模型元素什么是用例?用例是由系統(tǒng)所執(zhí)行的一系列動(dòng)作,為相關(guān)的參與者提供有價(jià)值的服務(wù)用例描述了系統(tǒng)需求每一個(gè)用例表達(dá)了系統(tǒng)向參與者所提供的某種服務(wù)也表述了參與者是如何使用系統(tǒng)的描述了系統(tǒng)和參與者之間的一段對(duì)話通訊關(guān)聯(lián)參與者和用例之間進(jìn)行對(duì)話的一個(gè)渠道用一條帶或不帶箭頭的線來(lái)表示箭頭表示是誰(shuí)發(fā)起了這次對(duì)話沒(méi)有箭頭表示任何一方都可以發(fā)起對(duì)話箭頭并不表示數(shù)據(jù)的流向,數(shù)據(jù)流向總是雙向的場(chǎng)景是用例的一個(gè)實(shí)例場(chǎng)景一輸入提款金額提取現(xiàn)金退出系統(tǒng),取回卡場(chǎng)景二輸入提款金額,金額大于2500元系統(tǒng)提示限額信息并提示客戶重新輸入輸入正確金額提取現(xiàn)金退出系統(tǒng),取回卡用例圖用例方法的好處為需求提供了應(yīng)用環(huán)境把系統(tǒng)定義在一個(gè)使用環(huán)境中幫助解釋為什么需要該系統(tǒng)有助于保證沒(méi)有需求的遺漏易于理解站在系統(tǒng)使用者的立場(chǎng)上來(lái)定義需求使用客戶和用戶都能理解的術(shù)語(yǔ)和表述易于客戶對(duì)于需求的審核可以為其他開發(fā)環(huán)節(jié)所重用項(xiàng)目計(jì)劃、設(shè)計(jì)、測(cè)試、用戶手冊(cè)內(nèi)容什么是用例建模用例的開發(fā)過(guò)程找出參與者找出用例描述用例框架細(xì)化用例描述管理用例模型的復(fù)雜度找出參與者找出參與者系統(tǒng)有那些用戶?有誰(shuí)想從系統(tǒng)中獲取信息誰(shuí)負(fù)責(zé)向系統(tǒng)提供信息?系統(tǒng)將會(huì)在哪些部門使用?是誰(shuí)負(fù)責(zé)管理和維護(hù)系統(tǒng)?有沒(méi)有其他的系統(tǒng)會(huì)和該系統(tǒng)發(fā)生交互?抽象出參與者系統(tǒng)邊界決定參與者系統(tǒng)邊界僅限于ATM機(jī)本身系統(tǒng)邊界擴(kuò)大至整個(gè)銀行系統(tǒng)特殊的參與者――系統(tǒng)時(shí)鐘系統(tǒng)內(nèi)部定時(shí)地執(zhí)行一些操作,如檢測(cè)系統(tǒng)資源使用情況、定期地生成統(tǒng)計(jì)報(bào)表等等對(duì)于參與者的描述參與者之間的關(guān)系什么是用例建模用例的開發(fā)過(guò)程找出參與者找出用例描述用例框架細(xì)化用例描述管理用例模型的復(fù)雜度找出用例找出用例每一個(gè)參與者想達(dá)到的目標(biāo)是什么?為什么該參與者需要使用該系統(tǒng)?該參與者會(huì)在系統(tǒng)中創(chuàng)建、修改、刪除或訪問(wèn)任何數(shù)據(jù)嗎?當(dāng)外部有事件發(fā)生的時(shí)候,該參與者需要通知系統(tǒng)嗎?當(dāng)系統(tǒng)內(nèi)部有某些事件發(fā)生時(shí),需要通知該參與者嗎?已定義的系統(tǒng)功能是否足以滿足所有的業(yè)務(wù)需求?ATM系統(tǒng)用例圖用例的包含關(guān)系查詢-基本事件流1.用戶插入信用卡2.輸入密碼3.選擇查詢4.查看帳號(hào)余額5.包含用例"打印回執(zhí)"6.退出系統(tǒng),取回信用卡用例的擴(kuò)展關(guān)系用例的泛化關(guān)系內(nèi)容什么是用例建模用例的開發(fā)過(guò)程找出參與者找出用例描述用例框架細(xì)化用例描述管理用例模型的復(fù)雜度描述每一個(gè)用例的框架事件流一個(gè)基本流最順利的場(chǎng)景從開始到結(jié)束一切都順利的場(chǎng)景很多個(gè)備選流除基本流之外的另外一些正常場(chǎng)景偶爾發(fā)生的場(chǎng)景異?;蝈e(cuò)誤處理流:是指一系列的步驟表示基本流和備用流用例名稱1.簡(jiǎn)要說(shuō)明2.事件流

2.1基本流步驟1

步驟2

步驟3

步驟42.2備用流

2.2.1A1… 2.2.2A2…2.2.3A3… 2.2.4A4… 2.2.5A5…什么是場(chǎng)景?事件流:一系列的步驟用例:描述所有的流場(chǎng)景:用例的某一個(gè)實(shí)例,從用例開始直到它的某一個(gè)結(jié)束點(diǎn)描述用例框架基本流是什么事件啟動(dòng)了用例?用例是如何結(jié)束的?用例中最常用到的行為是什么?備選流在用例中有無(wú)可選執(zhí)行的情況?那些行為是偶爾才發(fā)生的?是否有沒(méi)有包含在基本流中的正常情況?發(fā)生錯(cuò)誤的情況下該如何處理?ATM示例:提款提款-基本事件流

1.用戶插入信用卡

2.輸入密碼

3.輸入提款金額

4.提取現(xiàn)金

5.退出系統(tǒng),取回信用卡提款-備選事件流

備選流一:用戶可以在基本流中的任何一步選擇退出,轉(zhuǎn)至基本流步驟5。 備選流二:在基本流步驟1中,用戶插入無(wú)效信用卡,系統(tǒng)顯示錯(cuò)誤并退出信用卡,用例結(jié)束。 備選流三:在基本流步驟2中,用戶輸入錯(cuò)誤密碼,系統(tǒng)顯示錯(cuò)誤并提示用戶重新輸入密碼,重新回到基本流步驟2;三次輸入密碼錯(cuò)誤后,信用卡被系統(tǒng)沒(méi)收,用例結(jié)束。

什么是用例建模用例的開發(fā)過(guò)程找出參與者找出用例描述用例框架細(xì)化用例描述管理用例模型的復(fù)雜度為什么細(xì)化用例描述?描述軟件需求為后續(xù)的開發(fā)準(zhǔn)備一個(gè)系統(tǒng)功能描述在事件流中描述更為詳細(xì)的信息參與者做了什么動(dòng)作系統(tǒng)是如何響應(yīng)的系統(tǒng)和參與者之間交換了哪些信息描述用例場(chǎng)景成功場(chǎng)景失敗場(chǎng)景描述額外的用例信息特殊需求前置條件后置條件描述額外的用例信息特殊需求

特殊需求通常是非功能性需求,為一個(gè)用例所專有。前置條件

執(zhí)行用例之前必須存在的系統(tǒng)狀態(tài)后置條件

用例執(zhí)行完畢后系統(tǒng)可能處于的一組狀態(tài)

ATM示例:提款用例描述應(yīng)該有多細(xì)?用例的粒度用例圖以參與者為中心的用例圖以用例為中心總結(jié):用例模型項(xiàng)目四設(shè)計(jì)網(wǎng)上書店項(xiàng)目問(wèn)題對(duì)于任何產(chǎn)品都是在有了設(shè)計(jì)方案以后才能付諸實(shí)現(xiàn)(如時(shí)裝、建筑等),設(shè)計(jì)階段的工作質(zhì)量直接決定了產(chǎn)品的最終質(zhì)量。在蓋房子之前,都必須畫出藍(lán)圖來(lái)。在完成網(wǎng)上書店的需求分析之后,那該如何創(chuàng)建給程序員進(jìn)行開發(fā)的“圖紙”呢?系統(tǒng)設(shè)計(jì)任務(wù)在《需求規(guī)格說(shuō)明書》確定之后,就正式進(jìn)入到設(shè)計(jì)階段在設(shè)計(jì)階段,首先只是描繪出軟件的概貌(概要設(shè)計(jì))在此基礎(chǔ)上再將起細(xì)化,得到一個(gè)非常接近于源代碼的設(shè)計(jì)表達(dá)形式(詳細(xì)設(shè)計(jì))概要設(shè)計(jì)任務(wù)回答“怎樣實(shí)現(xiàn)目標(biāo)系統(tǒng)?”設(shè)計(jì)出實(shí)現(xiàn)目標(biāo)系統(tǒng)的幾種可能的方案描述每種可能的方案,分析每種方案的優(yōu)缺點(diǎn),并在充分權(quán)衡各種方案的利弊的基礎(chǔ)上,推薦一個(gè)最佳方案制定出實(shí)現(xiàn)所推薦的方案的詳細(xì)計(jì)劃概要設(shè)計(jì)程序應(yīng)該模塊化設(shè)計(jì)程序的體系結(jié)構(gòu)確定程序由哪些模塊組成以及模塊間的關(guān)系詳細(xì)設(shè)計(jì)任務(wù)

回答“應(yīng)該怎樣具體地實(shí)現(xiàn)這個(gè)系統(tǒng)”設(shè)計(jì)出程序的詳細(xì)規(guī)格說(shuō)明任務(wù)1:網(wǎng)上書店體系結(jié)構(gòu)設(shè)計(jì)

體系結(jié)構(gòu)設(shè)計(jì)主要是根據(jù)《需求規(guī)格說(shuō)明書》對(duì)系統(tǒng)進(jìn)行分解,確定子系統(tǒng)的功能和子系統(tǒng)之間的關(guān)系以及模塊的功能和模塊之間的關(guān)系。主要工作流程

(1) 設(shè)計(jì)準(zhǔn)備(2) 確定影響系統(tǒng)設(shè)計(jì)的約束因素(3) 確定設(shè)計(jì)策略(4) 系統(tǒng)分解與設(shè)計(jì)(5) 撰寫體系結(jié)構(gòu)設(shè)計(jì)文檔(6) 體系結(jié)構(gòu)設(shè)計(jì)評(píng)審“建筑體系結(jié)構(gòu)”一個(gè)人可完成。僅需: 最小的建模 簡(jiǎn)單的過(guò)程 簡(jiǎn)單的工具狗窩的體系結(jié)構(gòu)設(shè)計(jì)“鳥巢”的設(shè)計(jì)團(tuán)隊(duì)工作,高效而及時(shí)地完成。需要: 建模; 規(guī)范的過(guò)程; 強(qiáng)大的工具。軟件體系結(jié)構(gòu)的概念(M.Shaw)軟件體系結(jié)構(gòu)定義為:程序/系統(tǒng)各構(gòu)件的結(jié)構(gòu)它們之間的內(nèi)部關(guān)系指導(dǎo)它們的設(shè)計(jì)并隨時(shí)間而演變的原理和方針精簡(jiǎn)定義為(3C):

體系結(jié)構(gòu)=組件+連接件+約束

(Architecture=Components+Connectors+Constrains

)層次體系上層子系統(tǒng)可以使用下層子系統(tǒng)的功能,而下層子系統(tǒng)不能夠使用上層子系統(tǒng)的功能一般下層每個(gè)程序接口執(zhí)行當(dāng)前的一個(gè)簡(jiǎn)單的功能,而上層通過(guò)調(diào)用不同的下層程序,并按不同的順序來(lái)執(zhí)行這些下層程序典型計(jì)算機(jī)網(wǎng)絡(luò)的OSI參考模型客戶機(jī)/服務(wù)器結(jié)構(gòu)C/S軟件體系結(jié)構(gòu),即Client/Server(客戶機(jī)/服務(wù)器)結(jié)構(gòu),是基于資源不對(duì)等,且為實(shí)現(xiàn)共享而提出來(lái)的二層C/S結(jié)構(gòu)服務(wù)器(后臺(tái))負(fù)責(zé)數(shù)據(jù)管理客戶機(jī)(前臺(tái))完成與用戶的交互任務(wù)三層C/S結(jié)構(gòu)表示層是應(yīng)用的用戶接口部分,擔(dān)負(fù)著用戶與應(yīng)用間的對(duì)話功能它用于檢查用戶從鍵盤等輸入的數(shù)據(jù),顯示應(yīng)用輸出的數(shù)據(jù)功能層相當(dāng)于應(yīng)用的本體將具體的業(yè)務(wù)處理邏輯編入程序中數(shù)據(jù)層是數(shù)據(jù)庫(kù)管理系統(tǒng)負(fù)責(zé)管理對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的讀寫瀏覽器/服務(wù)器(B/S)結(jié)構(gòu)在B/S體系結(jié)構(gòu)下,用戶界面完全通過(guò)WWW瀏覽器實(shí)現(xiàn),一部分事務(wù)邏輯在前端實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端實(shí)現(xiàn)僅僅需要一個(gè)瀏覽器就可運(yùn)行全部的模塊,真正達(dá)到了"零客戶端"的功能任務(wù)2:網(wǎng)上書店靜態(tài)設(shè)計(jì)

在完成網(wǎng)上的體系結(jié)構(gòu)設(shè)計(jì)之后,將針對(duì)不同的模塊進(jìn)行具體的模塊設(shè)計(jì)軟件設(shè)計(jì)的原則⑴軟件實(shí)體有明顯的層次結(jié)構(gòu),利于軟件元素間控制;⑵軟件實(shí)體應(yīng)該是模塊化的,模塊具有獨(dú)立功能;⑶軟件實(shí)體與環(huán)境的界面清晰;⑷設(shè)計(jì)規(guī)格說(shuō)明清晰、簡(jiǎn)潔、完整和無(wú)二義性模塊化原則模塊化--把軟件按照規(guī)定原則,劃分為一個(gè)個(gè)較小的,相互獨(dú)立的但又相互關(guān)聯(lián)的部件,實(shí)際上是系統(tǒng)分解和抽象的過(guò)程模塊化的目的:降低軟件的復(fù)雜性模塊的概念模塊是數(shù)據(jù)說(shuō)明、可執(zhí)行語(yǔ)句等程序?qū)ο蟮募?,它是單?dú)命名的,并且可以通過(guò)名字來(lái)訪問(wèn)例如,過(guò)程、函數(shù)、子程序、宏等模塊的特征:接口,模塊的輸入輸出;功能,指模塊實(shí)現(xiàn)什么功能,有什么作用;邏輯,描述模塊內(nèi)部如何實(shí)現(xiàn)需求及所需數(shù)據(jù);狀態(tài),該模塊的運(yùn)行環(huán)境,模塊間調(diào)用與被調(diào)用關(guān)系。模塊的獨(dú)立性模塊獨(dú)立性:模塊完成獨(dú)立的功能與其他模塊的接口簡(jiǎn)單符合信息隱蔽和信息局部化原則模塊間關(guān)聯(lián)和依賴程度盡可能小模塊獨(dú)立的重要性功能被劃分,并且接口被簡(jiǎn)化,所以具有有效模塊化的軟件更易于開發(fā)由于因設(shè)計(jì)和編碼修改引起的副作用受到局限,錯(cuò)誤傳播被減小,并且模塊復(fù)用成為可能,所以獨(dú)立的模塊更易于維護(hù)和測(cè)試模塊獨(dú)立性的度量?jī)?nèi)聚(cohesion):是一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度的度量耦合(coupling):是模塊之間的相對(duì)獨(dú)立性(互相連接的緊密程度)的度量?jī)?nèi)聚性內(nèi)聚是模塊功能強(qiáng)度(一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度)的度量一個(gè)內(nèi)聚程度高的模塊(在理想情況下)應(yīng)當(dāng)只做一件事一般模塊的內(nèi)聚性分為七種類型耦合性模塊之間的相對(duì)獨(dú)立性(互相連接的緊密程度)①方式:調(diào)用模塊的方式②作用:塊間傳送的共用信息(參數(shù))類型③數(shù)量:塊間傳送的共用信息的數(shù)量取決于耦合性的七種類型數(shù)據(jù)方式作用少多數(shù)量控制混合直接調(diào)用過(guò)程調(diào)用分析活動(dòng):從用例導(dǎo)出對(duì)象

包括:

標(biāo)識(shí)對(duì)象將用例映射成對(duì)象(使用順序圖)建模對(duì)象之間的交互標(biāo)識(shí)對(duì)象之間的關(guān)系標(biāo)識(shí)對(duì)象的屬性和行為分析模型評(píng)審類圖描述系統(tǒng)的結(jié)構(gòu),用于表示系統(tǒng)中的類以及類與類之間的關(guān)系是創(chuàng)建其它圖的基礎(chǔ)類的描述主要包括:類的屬性和操作類圖中的關(guān)聯(lián)聚集組合關(guān)聯(lián)泛化依賴細(xì)化(實(shí)現(xiàn))例題判斷以下描述中的合適的UML類間關(guān)系。在學(xué)校中,一個(gè)導(dǎo)師可以指導(dǎo)多個(gè)研究生,一個(gè)研究生可以由多個(gè)導(dǎo)師指導(dǎo),那么導(dǎo)師和研究生之間的關(guān)系是:類A的一個(gè)操作調(diào)用類B的一個(gè)操作,且這兩個(gè)類之間不存在其他關(guān)系,那么類A和類B之間的關(guān)系是:森林和樹木之間的關(guān)系是:在MFC類庫(kù)中,Window類和DialogBox類之間的關(guān)系是:參數(shù)類及其實(shí)例類之間的關(guān)系是:關(guān)聯(lián)依賴聚合泛化實(shí)現(xiàn)任務(wù)3:網(wǎng)上書店的動(dòng)態(tài)結(jié)構(gòu)設(shè)計(jì)

在完成系統(tǒng)靜態(tài)結(jié)構(gòu)后,需要對(duì)系統(tǒng)的功能如何執(zhí)行操作要進(jìn)行描述,UML一般是通過(guò)時(shí)序圖、狀態(tài)圖來(lái)描述系統(tǒng)的動(dòng)態(tài)結(jié)構(gòu)構(gòu)建動(dòng)態(tài)模型描述系統(tǒng)的動(dòng)態(tài)行為,它們指明系統(tǒng)中的對(duì)象如何響應(yīng)外部的事件,執(zhí)行任務(wù)評(píng)估所有的用例,理解系統(tǒng)中交互的序列,標(biāo)識(shí)驅(qū)動(dòng)交互序列的事件,理解這些事件如何和特定的對(duì)象相關(guān)聯(lián)為系統(tǒng)建造順序圖、活動(dòng)圖為主要對(duì)象建造狀態(tài)機(jī)圖復(fù)審動(dòng)態(tài)模型,以驗(yàn)證準(zhǔn)確性和一致性順序圖:將用例映射成對(duì)象

順序圖將用例與對(duì)象聯(lián)系在一起。表達(dá)了用例行為在其參與對(duì)象之間是怎樣分布的建模了對(duì)象之間的交互順序,同時(shí)將功能分配給該用例可幫助開發(fā)者標(biāo)識(shí)出新的參與對(duì)象、發(fā)現(xiàn)遺漏的對(duì)象或界限不明的領(lǐng)域順序圖關(guān)注于消息的順序,給出對(duì)象之間發(fā)送消息的先后順序順序圖例子銀行轉(zhuǎn)賬業(yè)務(wù)的順序圖狀態(tài)圖一個(gè)狀態(tài)圖表示一個(gè)狀態(tài)機(jī)。狀態(tài)圖用來(lái)描述某個(gè)對(duì)象的所有可能狀態(tài)及其狀態(tài)轉(zhuǎn)換信息。一個(gè)狀態(tài)圖包括一系列的狀態(tài)及狀態(tài)之間的轉(zhuǎn)移狀態(tài)是對(duì)象執(zhí)行了一系列活動(dòng)的結(jié)果。當(dāng)某個(gè)事件發(fā)生后,對(duì)象的狀態(tài)將發(fā)生變化,狀態(tài)的改變叫做轉(zhuǎn)移不是每個(gè)類都應(yīng)該有一個(gè)狀態(tài)圖。只對(duì)“感興趣的”狀態(tài)的類(也就是說(shuō),在系統(tǒng)活動(dòng)期間具有三個(gè)或更多潛在狀態(tài)的類)才進(jìn)行狀態(tài)圖描述。浸泡洗滌漂洗脫水狀態(tài)圖:電梯活動(dòng)圖活動(dòng)圖用于對(duì)計(jì)算流程和工作流建模,描述完成一個(gè)操作所需要的活動(dòng),或者是一個(gè)用例實(shí)例(場(chǎng)景)的活動(dòng)?;顒?dòng)圖使用狀態(tài)機(jī)圖的符號(hào)表示與狀態(tài)機(jī)圖不同的是,活動(dòng)圖中動(dòng)作狀態(tài)之間的遷移不是靠事件觸發(fā)的,當(dāng)動(dòng)作狀態(tài)中的活動(dòng)完成時(shí)遷移就被觸發(fā)

活動(dòng)圖用來(lái)描述用例描述用例的活動(dòng)圖[未付款][已付款]*[對(duì)每一訂單項(xiàng)][有貨](méi)[缺貨](méi)取消并退回訂單收到訂單付款認(rèn)可檢查訂單項(xiàng)制作并發(fā)放提貨單更新庫(kù)存制作并發(fā)放缺貨單制作并發(fā)放采購(gòu)單數(shù)據(jù)庫(kù)ER模型實(shí)體聯(lián)系模型(E-R模型)是廣泛被采用的概念模型設(shè)計(jì)方法基本元素是:實(shí)體、聯(lián)系和屬性實(shí)體實(shí)體是一個(gè)數(shù)據(jù)對(duì)象,指應(yīng)用中可以區(qū)別的客觀存在的事物,如人、部門、表格、物體、項(xiàng)目等。在E-R模型中,實(shí)體用方框表示,方框內(nèi)注明實(shí)體的命名實(shí)體名常用大寫字母開頭的有具體意義的英文名詞表示屬性實(shí)體的某一特性稱為屬性。如人有姓名、性別、年齡、性別等屬性在E-R圖中,屬性用橢圓形框表示,加下劃線的屬性是碼。聯(lián)系聯(lián)系表示一個(gè)或多個(gè)實(shí)體之間的關(guān)聯(lián)關(guān)系在E-R圖中,聯(lián)系用菱形框表示,并用線段將其與相關(guān)的實(shí)體連接起來(lái)ER圖實(shí)例項(xiàng)目五實(shí)現(xiàn)網(wǎng)上書店項(xiàng)目問(wèn)題為什么要進(jìn)行煩人的單元測(cè)試?那些剛剛接觸完全測(cè)試概念的開發(fā)人員常常遇到這個(gè)問(wèn)題。144常見誤解單元測(cè)試?yán)速M(fèi)了太多的時(shí)間它僅僅是證明這些代碼做了什么我是個(gè)很棒的程序員,我是不是可以不進(jìn)行單元測(cè)試?不管怎樣,集成測(cè)試將會(huì)抓住所有的Bug145解決方案關(guān)鍵任務(wù)是寫出正確的容易理解、容易維護(hù)的程序模塊

根據(jù)目標(biāo)系統(tǒng)的性質(zhì)和實(shí)際環(huán)境,選取一種適當(dāng)?shù)母呒?jí)程序設(shè)計(jì)語(yǔ)言(必要時(shí)用匯編語(yǔ)言)把說(shuō)細(xì)設(shè)計(jì)的結(jié)果翻譯成用選定的語(yǔ)言書寫的程序仔細(xì)測(cè)試編寫出的每一個(gè)模塊。146常見錯(cuò)誤編碼不規(guī)范不重視單元測(cè)試147編程規(guī)約和規(guī)范的審查代碼檢查包括代碼走查、代碼審查等檢查內(nèi)容代碼和設(shè)計(jì)的一致性代碼對(duì)標(biāo)準(zhǔn)的遵循、可讀性代碼的邏輯表達(dá)的正確性代碼結(jié)構(gòu)的合理性代碼走查和代碼審查的區(qū)別項(xiàng)目走查審查準(zhǔn)備通讀設(shè)計(jì)和編碼應(yīng)準(zhǔn)備好需求描述文檔、程序設(shè)計(jì)文檔、程序的源代碼清單、代碼編碼標(biāo)準(zhǔn)和代碼缺陷檢查表形式非正式會(huì)議正式會(huì)議參加人員開發(fā)人員為主項(xiàng)目組成員包括測(cè)試人員主要技術(shù)方法無(wú)缺陷檢查表注意事項(xiàng)限時(shí)、不要現(xiàn)場(chǎng)修改代碼限時(shí)、不要現(xiàn)場(chǎng)修改代碼生成文檔會(huì)議記錄靜態(tài)分析錯(cuò)誤報(bào)告目標(biāo)代碼標(biāo)準(zhǔn)規(guī)范,無(wú)邏輯錯(cuò)誤代碼標(biāo)準(zhǔn)規(guī)范,無(wú)邏輯錯(cuò)誤代碼審查清單數(shù)據(jù)引用錯(cuò)誤數(shù)據(jù)聲明錯(cuò)誤計(jì)算錯(cuò)誤比較錯(cuò)誤控制流程錯(cuò)誤子程序參數(shù)錯(cuò)誤輸出錯(cuò)誤其他檢查單元測(cè)試的優(yōu)點(diǎn)它是一種驗(yàn)證行為它是一種設(shè)計(jì)行為它是一種編寫文檔的行為它具有回歸性單元測(cè)試的內(nèi)容模塊接口測(cè)試局部數(shù)據(jù)結(jié)構(gòu)測(cè)試路徑測(cè)試錯(cuò)誤處理測(cè)試邊界測(cè)試項(xiàng)目六

測(cè)試網(wǎng)上書店項(xiàng)目問(wèn)題當(dāng)開發(fā)組完成實(shí)現(xiàn)階段工作,就可以正式交付給測(cè)試組開始軟件測(cè)試階段的工作了,這個(gè)階段是保證軟件質(zhì)量的重要階段,只有這個(gè)階段完成良好,才能保證交付給用戶的產(chǎn)品是符合用戶需求的產(chǎn)品。154解決方案軟件測(cè)試是程序的一種執(zhí)行過(guò)程,目的是盡可能發(fā)現(xiàn)并改正被測(cè)試軟件中的錯(cuò)誤,提高軟件的可靠性。是軟件生命周期中一項(xiàng)非常重要且非常復(fù)雜的工作155基于Web的系統(tǒng)測(cè)試方法

基于Web的系統(tǒng)測(cè)試與傳統(tǒng)的軟件測(cè)試不同需要檢查和驗(yàn)證是否按照設(shè)計(jì)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論