軟件需求分析與設(shè)計(jì)-緒論_第1頁
軟件需求分析與設(shè)計(jì)-緒論_第2頁
軟件需求分析與設(shè)計(jì)-緒論_第3頁
軟件需求分析與設(shè)計(jì)-緒論_第4頁
軟件需求分析與設(shè)計(jì)-緒論_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、軟件需求分析與設(shè)計(jì)緒論軟件分析與設(shè)計(jì)緒論主要內(nèi)容OOA/D的根本概念迭代開發(fā)案例引進(jìn)9/22/20222軟件分析與設(shè)計(jì)根本概念分析是對(duì)問題和需求的調(diào)查研究,不強(qiáng)調(diào)解決問題在面向?qū)ο蠓治鲞^程中強(qiáng)調(diào)的是在問題領(lǐng)域發(fā)現(xiàn)和描述對(duì)象設(shè)計(jì)滿足需求的概念上的解決方案,不強(qiáng)調(diào)實(shí)現(xiàn)面向?qū)ο蟮姆治鰪?qiáng)調(diào)的是定義軟件對(duì)象以及他們?nèi)绾螀f(xié)作以實(shí)現(xiàn)需求9/22/20223面向?qū)ο蠓治龅膸讉€(gè)問題9/22/20224面向?qū)ο蟮姆治瞿P秃瓦^程9/22/20225面向?qū)ο笤O(shè)計(jì)的幾個(gè)問題9/22/20226OO模型9/22/20227OOD過程逐個(gè)設(shè)計(jì)OOD模型的五個(gè)局部問題域局部的設(shè)計(jì)人機(jī)交互局部的設(shè)計(jì)控制流管理局部的設(shè)計(jì)數(shù)據(jù)管理

2、局部的設(shè)計(jì)構(gòu)件部署設(shè)計(jì)不強(qiáng)調(diào)次序每個(gè)局部均采用與OOA一致的概念、表示法及活動(dòng),但具有自己獨(dú)特的策略9/22/20228問題管理局部的設(shè)計(jì)繼續(xù)運(yùn)用OOA 的方法,細(xì)化使用OOA的結(jié)果,并加以修改擴(kuò)充為服用設(shè)計(jì)與編程的類而增加結(jié)果增加一般類以建立共同協(xié)議按編程語言調(diào)整集成提高性能為數(shù)據(jù)存儲(chǔ)管理增補(bǔ)屬性與效勞為編程方便增加底層成分決定關(guān)系的實(shí)現(xiàn)方式對(duì)例外的處理編程語言限制了可用的屬性類型構(gòu)造或優(yōu)化算法調(diào)整效勞決定對(duì)象間的可訪問性考慮采用設(shè)計(jì)模式9/22/20229人機(jī)交互局部的設(shè)計(jì)從use case 分析人機(jī)交互命令的組織設(shè)計(jì)模式:觀察者、視圖幫助者等開發(fā)工具的支持9/22/202210控制流程管

3、理局部的設(shè)計(jì)用主動(dòng)對(duì)象表示每個(gè)控制流進(jìn)程、線程所有的主動(dòng)類構(gòu)成控制流管理局部識(shí)別每個(gè)控制流審查與篩選定義各控制流控制流間的同步對(duì)進(jìn)程和線程建模9/22/202211順序系統(tǒng)的消息9/22/202212并發(fā)系統(tǒng)中的消息9/22/202213數(shù)據(jù)管理局部的設(shè)計(jì)利用關(guān)系數(shù)據(jù)系統(tǒng)進(jìn)行數(shù)據(jù)存儲(chǔ)設(shè)計(jì)永久類的存放設(shè)計(jì)設(shè)計(jì)數(shù)據(jù)管理局部的類并修改問題域系統(tǒng)保存和恢復(fù)對(duì)象的時(shí)機(jī)對(duì)關(guān)系的存儲(chǔ)利用面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng)進(jìn)行數(shù)據(jù)存儲(chǔ)設(shè)計(jì)利用文件實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)9/22/202214軟件分析與設(shè)計(jì)根本過程定義用例用例不是面向?qū)ο笾破罚菍?duì)情節(jié)的記錄,是需求分析中的工具定義領(lǐng)域模型面向?qū)ο蠓治鲫P(guān)注從對(duì)象的角度創(chuàng)立領(lǐng)域描述,面向?qū)?/p>

4、象分析需要鑒別重要的概念、屬性和關(guān)聯(lián)面向?qū)ο蠓治龅慕Y(jié)果可以表示為領(lǐng)域模型分配對(duì)象職責(zé)并繪制交互圖面向?qū)ο笤O(shè)計(jì)關(guān)注軟件對(duì)象的定義他們的職責(zé)和協(xié)作順序圖定義設(shè)計(jì)類圖用設(shè)計(jì)類圖描述類的靜態(tài)視圖9/22/202215軟件分析與設(shè)計(jì)簡(jiǎn)單實(shí)例定義用例骰子游戲:游戲者請(qǐng)求擲骰子。系統(tǒng)展示結(jié)果:如果骰子的總點(diǎn)數(shù)是7,那么游戲者贏,否那么游戲者輸領(lǐng)域模型PlayernameDieFace valueDie game1 Rolls 21Plays11 Includes29/22/202216軟件分析與設(shè)計(jì)順序圖9/22/202217軟件需求分析與設(shè)計(jì)_局部設(shè)計(jì)類圖9/22/202218軟件分析與設(shè)計(jì)迭代、進(jìn)化和敏

5、捷軟件開發(fā)過程描述構(gòu)造、部署以及維護(hù)軟件的方式統(tǒng)一軟件開發(fā)過程UP)已成為一種流行的構(gòu)造面向?qū)ο笙到y(tǒng)的迭代開發(fā)過程RUP (Rational Unified Process) 是對(duì)統(tǒng)一過程的詳細(xì)細(xì)化靈活并且開放,鼓勵(lì)引進(jìn)其他迭代方法極限編程Scrum敏捷開發(fā)方法UP實(shí)踐提供了如何實(shí)施OOA/D的示范結(jié)構(gòu)9/22/202219軟件分析與設(shè)計(jì)迭代、進(jìn)化和敏捷迭代開發(fā)Iterative development是統(tǒng)一開發(fā)過程的關(guān)鍵實(shí)踐開發(fā)被組織成一系列固定的短期小工程每次迭代都產(chǎn)生經(jīng)過測(cè)試、集成并可執(zhí)行的局部系統(tǒng)每次迭代都具有各自的需求分析、設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試隨著時(shí)間和一次次迭代,系統(tǒng)增量式完善9/22

6、/202220迭代和進(jìn)化式9/22/202221在迭代工程中處理變更 早期迭代遠(yuǎn)離系統(tǒng)的“真實(shí)路徑”。通過反饋和調(diào)整,系統(tǒng)向最適宜的需求和設(shè)計(jì)收斂包括設(shè)計(jì)、實(shí)現(xiàn)、集成和測(cè)試的一次迭代 在后期迭代中,很少會(huì)在需求上產(chǎn)生顯著變化,但是存在這種可能性。這種后期的變化可能會(huì)給組織帶來業(yè)務(wù)競(jìng)爭(zhēng)優(yōu)勢(shì)9/22/202222軟件分析與設(shè)計(jì)迭代、進(jìn)化和敏捷迭代開發(fā)的優(yōu)點(diǎn)減少工程失敗的可能性,提高生產(chǎn)率,降低缺陷率在早期緩解高風(fēng)險(xiǎn)早期反響、用戶參與和調(diào)整,會(huì)產(chǎn)生更接近真實(shí)需求的精化系統(tǒng)可控復(fù)雜性,團(tuán)隊(duì)不會(huì)被“分析癱瘓或長(zhǎng)期且復(fù)雜的步驟所淹沒一次迭代中的經(jīng)驗(yàn)可以被系統(tǒng)地用于改進(jìn)開發(fā)過程本身,并如此反復(fù)進(jìn)行下去一次迭

7、代的持續(xù)時(shí)間和時(shí)間定量小步驟,快速反響和調(diào)整時(shí)間定量,必需按時(shí)間完成9/22/202223軟件分析與設(shè)計(jì)迭代、進(jìn)化和敏捷瀑布模型在編程之前試圖定義所有或大局部需求在編程之前試圖完成完整的設(shè)計(jì)試圖在開始前定義“可靠的時(shí)間表問題錯(cuò)誤的假設(shè),規(guī)格說明是可預(yù)知的和穩(wěn)定的,在開始就可以定義,具有低變更率變更對(duì)于軟件是永恒在復(fù)雜變更系統(tǒng)中,反響和調(diào)整是成功的關(guān)鍵不要讓瀑布思維侵蝕迭代或UP工程9/22/202224軟件分析與設(shè)計(jì)迭代的分析設(shè)計(jì)實(shí)例1)第一次迭代前第一個(gè)時(shí)間定量需求會(huì)議進(jìn)行高階需求分析,確定用例和特性名稱和關(guān)鍵的非功能屬性通過咨詢首席架構(gòu)師和業(yè)務(wù)人員,選擇10用例具有重要的架構(gòu)意義具有高業(yè)務(wù)

8、價(jià)值對(duì)選出的用例的功能和非功能性需求進(jìn)行詳細(xì)分析2)召開迭代方案會(huì)議,選定特定時(shí)間進(jìn)行設(shè)計(jì)、構(gòu)造和測(cè)試9/22/202225軟件分析與設(shè)計(jì)迭代的分析設(shè)計(jì)實(shí)例3)在34周完成第1次迭代分組進(jìn)行建模和設(shè)計(jì)工作編程、測(cè)試和集成進(jìn)行單元測(cè)試、驗(yàn)收測(cè)試、負(fù)載測(cè)試和可用性測(cè)試在結(jié)束前的一周,檢查是否能夠完成初始的迭代目標(biāo),如果不能,那么縮小迭代范圍凍結(jié)代碼,檢查,集成測(cè)試,建立迭代基線向外部顯示局部系統(tǒng),展示可視進(jìn)展和要求反響9/22/202226軟件分析與設(shè)計(jì)迭代的分析設(shè)計(jì)實(shí)例4)在第1次迭代即將結(jié)束時(shí),召開第2次需求工作會(huì)議,對(duì)上次會(huì)議所有的材料進(jìn)行復(fù)查和精化,細(xì)化1015的用例5)舉行下一個(gè)迭代的迭

9、代方案會(huì)議6)以相同的步驟進(jìn)行第2次迭代7)反復(fù)進(jìn)行4次迭代和5次需求工作會(huì)議,完成8090需求,實(shí)現(xiàn)系統(tǒng)的108工程推進(jìn)20,進(jìn)入細(xì)化階段9此后一般不進(jìn)行需求工作會(huì)議,需求已穩(wěn)定9/22/202227進(jìn)化式分析和設(shè)計(jì)早期迭代的主要形式需求20%軟件2%需求30%軟件5%50%8%90%10%90%20%迭代1 迭代2 迭代3 迭代4 迭代51234520需求討論會(huì)假設(shè)該工程最終有20個(gè)迭代在進(jìn)化式迭代開發(fā)中,通過一系列需求討論會(huì),需求在一組早期迭代中進(jìn)化?;蛟S經(jīng)過四次迭代和討論會(huì)后,可以定義和精化90%的需求,然而,只構(gòu)建了10%的軟件。MTWThFMTWThFMTWThF為期三周的迭代一星

10、期二星期三星期啟動(dòng)會(huì)議,向團(tuán)隊(duì)明確迭代目標(biāo),1小時(shí)團(tuán)隊(duì)進(jìn)行敏捷建模和設(shè)計(jì),在白板上繪制UML草圖,5小時(shí)開始編碼和測(cè)試在此期間進(jìn)行大部分OOA/D并應(yīng)用UML如果有太多工作,分解迭代目標(biāo)為形成迭代基線,最后檢入代碼并凍結(jié)代碼演示和為期兩天的需求討論會(huì)下一次迭代方案會(huì)議,2小時(shí)在討論會(huì)上進(jìn)行用例建模9/22/202228軟件分析與設(shè)計(jì)迭代、進(jìn)化和敏捷風(fēng)險(xiǎn)驅(qū)動(dòng)與客戶驅(qū)動(dòng)更明確包含以架構(gòu)為中心的迭代開發(fā)敏捷方法應(yīng)用時(shí)間定量的迭代使用自適應(yīng)方案,提倡增量交付敏捷宣言個(gè)體和迭代、超越過程和工具;工作的軟件、超越完整的文檔;客戶協(xié)作、超越合同談判;相應(yīng)變更,查閱履行方案9/22/202229軟件分析與設(shè)計(jì)

11、敏捷原那么優(yōu)先級(jí)最高的是,通過早期和持續(xù)交付有價(jià)值的軟件來滿足客戶歡迎變更需求,即使在開發(fā)的后期提出,敏捷過程為客戶的競(jìng)爭(zhēng)優(yōu)勢(shì)而控制變更以2周到2月為周期,頻繁的交付可運(yùn)行的軟件,首推較短的時(shí)間定量在整個(gè)項(xiàng)目的過程中,每一天開發(fā)人員都要和業(yè)務(wù)人員合作由個(gè)體推動(dòng)項(xiàng)目的建設(shè),為個(gè)體提供所需的環(huán)境、支持和信任在開發(fā)團(tuán)隊(duì)中或開發(fā)團(tuán)隊(duì)間傳遞信息的最為有效和高效的方法是面對(duì)面交流衡量進(jìn)展的重要尺度是可運(yùn)行的軟件敏捷過程提倡可持續(xù)的開發(fā)發(fā)起人、開發(fā)者和用戶應(yīng)該步調(diào)一致不斷地關(guān)注技術(shù)上優(yōu)越的設(shè)計(jì)會(huì)提高敏捷性簡(jiǎn)潔是最重要的,簡(jiǎn)潔就是盡量減少工作量的藝術(shù)最佳的架構(gòu)、需求和設(shè)計(jì)來自組織的團(tuán)隊(duì)團(tuán)隊(duì)要定期反省如何使工作

12、更有效,然后相應(yīng)地調(diào)整行為9/22/202230軟件分析與設(shè)計(jì)迭代、進(jìn)化和敏捷敏捷建模采用敏捷方法并不意味著不進(jìn)行任何建模建模的目的主要是為了理解和勾通,而不是構(gòu)建文檔不要對(duì)所有或大多數(shù)軟件設(shè)計(jì)建模或應(yīng)用UML,可以將簡(jiǎn)單的設(shè)計(jì)問題推延到編程階段盡可能使用最簡(jiǎn)單的工具不要單獨(dú)建模,而是結(jié)對(duì)同時(shí)建模并行的創(chuàng)立模型在白板上畫草圖,“足夠好就可以所有的模型可能是不精確的開發(fā)者應(yīng)為自己進(jìn)行OO設(shè)計(jì)建模9/22/202231敏捷建模草圖例如9/22/202232軟件分析與設(shè)計(jì)迭代、進(jìn)化和敏捷敏捷UP推薦使用UP活動(dòng)和制品簡(jiǎn)集實(shí)現(xiàn)前的需求可以不完整以敏捷建模實(shí)踐應(yīng)用UML不應(yīng)有詳細(xì)的方案主里程碑方案和下一

13、迭代方案9/22/202233軟件分析與設(shè)計(jì)迭代、進(jìn)化和敏捷UP的其他實(shí)踐在早期迭代過程中解決高風(fēng)險(xiǎn)和高價(jià)值的問題不斷地讓用戶參與評(píng)估、反響和需求在早期迭代中建立內(nèi)聚的核心架構(gòu)不斷地驗(yàn)證質(zhì)量;提早、經(jīng)常和實(shí)際地測(cè)試在適當(dāng)?shù)胤绞褂糜美M(jìn)行一些可視化建模認(rèn)真管理需求實(shí)行變更請(qǐng)求和配置管理9/22/202234 初始細(xì)化構(gòu)造 移 交里程碑發(fā)布增量最終產(chǎn)品發(fā)布 迭代的結(jié)束點(diǎn),此時(shí)有重要決策或評(píng)估產(chǎn)生 最終產(chǎn)品的穩(wěn)定可執(zhí)行子集。每個(gè)迭代的結(jié)束點(diǎn)都是小型的發(fā)布 兩次迭代發(fā)布子集之間的差異增量 此時(shí),為產(chǎn)品的使用發(fā)布系統(tǒng)UP中面向進(jìn)度表的術(shù)語迭代階段開發(fā)周期9/22/202235科目9/22/202236科目與階段UP科目樣例初始 細(xì)化 構(gòu)造 移交業(yè)務(wù)建模需求設(shè)計(jì)實(shí)現(xiàn) 科目的相對(duì)工作量在不同階段有所變化 本例只是建議,并非嚴(yán)格規(guī)定9/22/202237簡(jiǎn)單開發(fā)案例s:開始,r:精化科目實(shí)踐制品迭代初始I1細(xì)化E1.E

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論