版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、1,第四講 項目方法選擇,,2,內(nèi)容,技術(shù)選擇考慮風(fēng)險方法選擇:過程模型,3,技術(shù)選擇,技術(shù)選擇將影響:開發(fā)人員的訓(xùn)練需要人員招聘開發(fā)環(huán)境——硬件和軟件系統(tǒng)維護安排步驟:分析項目是目標(biāo)驅(qū)動的還是產(chǎn)品驅(qū)動的分析項目其他特征面向數(shù)據(jù)還是面向控制通用還是專用是否涉及需要專用工具支持的專門技術(shù)是否有特殊的安全性要求對軟硬件有何要求,4,練習(xí),對下列系統(tǒng)進行分類工資支付系統(tǒng)飲料灌裝企業(yè)的控制系統(tǒng)供水企業(yè)管理對企業(yè)
2、供水計劃的系統(tǒng)支持項目管理的軟件供律師查詢法律條文的系統(tǒng)面向數(shù)據(jù)或特定領(lǐng)域的應(yīng)用系統(tǒng)包含嵌入式軟件的過程控制或者工業(yè)系統(tǒng)使用圖形的信息系統(tǒng)通用信息系統(tǒng)軟件包信息收集的通用軟件包,5,識別項目中的高風(fēng)險,產(chǎn)品不確定性:系統(tǒng)需求理解的準(zhǔn)確性。用戶在開始時有可能對系統(tǒng)應(yīng)該什么樣都無法確定。在某些環(huán)境中,精確而有效的需求描述可能迅速變得過時。過程不確定性:在項目開始時需要選擇方法或過程模型,或者一種新的工具,任何對原先采用的開發(fā)
3、方法的變化都將引入不確定性資源不確定性:項目進行中資源的數(shù)量可能發(fā)生變化,6,練習(xí),識別學(xué)院工資系統(tǒng)中的風(fēng)險金融和職員之間的矛盾職員對系統(tǒng)不接受缺少運行該系統(tǒng)的經(jīng)驗缺少管理系統(tǒng)的計算機專業(yè)人員需求變化,7,選擇方法,考慮用戶關(guān)于實現(xiàn)的需求用戶可能在合同中限定了有關(guān)實現(xiàn)方面的方法。例如,規(guī)定了企業(yè)必須具有相應(yīng)的CMM等級,或者通過了ISO9000方法選擇通用的生命周期方法控制系統(tǒng):一般為實時系統(tǒng),比如需要Petri網(wǎng)技術(shù)
4、信息系統(tǒng):……,Too often, software work follows the first law of bicycling: No matter where you’re going, it’s uphill and against the wind,9,過程模型的選擇,開發(fā)一個軟件需要選擇開發(fā)策略(包括過程,方法和工具)以及通用階段,這些策略和階段被稱為過程模型“過程”:相關(guān)聯(lián)的活動過程模型的選擇基于項目和應(yīng)用的特
5、性,使用的工具和方法,所需要的控制方法和交付物。,10,軟件過程的概念,軟件過程由關(guān)于項目的階段、狀態(tài)、方法、技術(shù)和開發(fā)、維護軟件的人員以及相關(guān)對象(計劃、文檔、模型、編碼、測試、手冊等)組成。 一個過程定義了為達到某個確定的目標(biāo),需要什么人在什么時間以何種方式做何種工作軟件需要一個可用于指導(dǎo)顧客、用戶、開發(fā)人員和項目經(jīng)理等參與者的過程,11,軟件開發(fā)過程,軟件工程的核心是過程。產(chǎn)品、人員、技術(shù)通過過程關(guān)聯(lián)起來。軟件開發(fā)過程能夠?qū)⒓?/p>
6、術(shù)集成在一起從而使軟件的開發(fā)能夠以一種合理而及時的方式完成。,12,有效的軟件過程,有效的軟件過程可以提高組織的生產(chǎn)能力保證軟件開發(fā)的基本原則的實現(xiàn),輔助軟件項目管理者作出明智的決定; 使軟件開發(fā)活動標(biāo)準(zhǔn)化,提高軟件的可重用性和Team間的協(xié)作;有效的軟件過程也可以改善軟件組織對軟件的維護能力通過有效地定義如何管理需求變更,使得變更部分能夠在未來的版本中恰當(dāng)分配,實現(xiàn)平滑過渡; 在具體操作和相關(guān)支持中定義如何平滑地改造軟件,
7、并且這種具體操作和支持是可實施的;不可實施的軟件過程被剔除。,13,,,問題求解的一般過程,問題求解的一般過程實際問題并不能簡單劃為四個階段,各個階段會在問題的不同層次上同時并存軟件開發(fā)實際上是一個“混沌”(chaos)過程(Raccoon),問題定義,方案集成,技術(shù)開發(fā),現(xiàn)狀,14,編碼修正模型,Code and Fix Code like Hell(魯莽編碼)從一個大致的想法開始工作,然后經(jīng)過非正規(guī)的設(shè)計、編碼、調(diào)
8、試和測試方法,最后完成工作,,,可能有可能沒有的規(guī)范,發(fā)布(可能),15,編碼修正模型,好處:成本可能很低只需要很少的專業(yè)知識,任何寫過程序的人都可以對于一些非常小的、開發(fā)完后就會很快丟棄的軟件可以采用對于規(guī)模稍大的項目,采用這種模型是很危險的,16,瀑布模型(Waterfall Model),所有過程模型的祖宗項目從開始到結(jié)束按照一定的順序執(zhí)行瀑布模型是文檔驅(qū)動的,各個階段不連續(xù)也不交叉,17,瀑布模型,發(fā),瀑布模型適應(yīng)于
9、什么場合?有何優(yōu)缺點?,18,瀑布模型,當(dāng)有一個穩(wěn)定的產(chǎn)品定義和很容易被理解的技術(shù)解決方案時,純瀑布模型特別合適當(dāng)你對一個定義得很好的版本進行維護或?qū)⒁粋€產(chǎn)品移植到一個新的平臺上,瀑布模型也特別合適。純瀑布模型能夠降低管理費用,因為你可以預(yù)先完成所有計劃。對于那些容易理解但很復(fù)雜的項目,采用純瀑布模型比較合適,因為可以用順序方法處理問題。在質(zhì)量需求高于成本需求和進度需求的時候,它尤為出色。當(dāng)開發(fā)隊伍的技術(shù)力量比較弱或者缺乏經(jīng)驗
10、時,瀑布模型更為適合。,19,瀑布模型,純瀑布模型的缺點是在項目開始的時候,在設(shè)計工作完成前和代碼寫出來前,很難充分描述需求。瀑布模型最主要的問題是缺乏靈活性。必須在項目開始前說明全部需求。但這恰恰是非常困難的。,20,瀑布模型變種:V型模型,該方法是對瀑布模型的修正,強調(diào)了驗證活動,21,,,,,,,瀑布模型變種:生魚片模型,把階段重疊起來的瀑布模型起源于日本硬件開發(fā)模型(富士通—施樂),軟件概念,需求分析,架構(gòu)設(shè)計,詳細設(shè)計,編
11、碼和調(diào)試,系統(tǒng)測試,22,瀑布模型變種:生魚片模型,傳統(tǒng)的瀑布模型強調(diào)階段之間最小的重疊,而生魚片模型強調(diào)大幅度的重疊,即在需求分析完成之前就可以進行架構(gòu)設(shè)計和部分詳細設(shè)計純瀑布模型強調(diào)在任意兩個階段交接時,文檔從一個團隊交給另一個完全隔離的團隊,但是如果一個團隊完成各個階段任務(wù)時,可以沒有那么多文檔。問題:缺點是什么?生魚片模型因為階段重疊,因而里程碑不明確,很難有效地進行過程跟蹤和控制。,23,瀑布模型變種:具有子項目的瀑布模
12、型,純瀑布模型的一個問題是必須完成全部的架構(gòu)設(shè)計后才能進行詳細設(shè)計,但是,整個系統(tǒng)中有些部分可能有些特殊性,可以有自己的步驟,即將這些部分劃分為為子項目。問題:該模型有何問題?這種方法的主要風(fēng)險是相關(guān)性無法預(yù)料。,24,瀑布模型變種:能夠降低風(fēng)險的瀑布模型,純瀑布模型要求在開始架構(gòu)設(shè)計前,必須將用戶的所有需求都搞清楚,但是實際中是很困難的??山档惋L(fēng)險的瀑布模型是在頂端,即需求分析和架構(gòu)設(shè)計階段引入螺旋以便降低風(fēng)險。在該螺旋中,先
13、開發(fā)一個用戶界面原型,采用系統(tǒng)情節(jié)串聯(lián)圖版(system storyboarding)引導(dǎo)用戶提出需求,記錄用戶與系統(tǒng)的交互操作方式,或者采用其它需求獲取方法。,25,螺旋模型,Spiral 模型(Boehm提出)以風(fēng)險為導(dǎo)向的生命期模型從一個小范圍的關(guān)鍵中心地帶開始尋找風(fēng)險因素,制定風(fēng)險控制計劃,并交付給下一步驟,如此迭代,每次迭代將項目擴展到一個更大的規(guī)模,26,,,Risk analy-sis,Prototype 1,Simu
14、lations, models, benchmarks,Requirements plan, life-cycle plan,,Concept of operation,,Prototype 2,Risk analysis,,,Software requirements,Requirements validation,,Develop-ment plan,,,,,,Risk analysis,Prototype 3,,,Software
15、 product design,Design validation and verification,,Integration and test plan,,,Risk analysis,Operational prototype,,,Detailed design,Unit test,Code,Integration and test,Acceptance test,Implementation,,,,,,,Plan next pha
16、ses,Develop, verify next-level product,Determine objectives, alternatives, constrains,Evaluate alternatives, identify, resolve risks,Cumulative cost,Progress through steps,,The spiral model,問題:有何優(yōu)缺點?,27,螺旋模型,優(yōu)勢:隨著迭代的增加(成
17、本的增加),風(fēng)險程度隨之降低缺陷:比較復(fù)雜,需要責(zé)任心,專注和管理方面的知識。,28,WINWIN螺旋模型,在螺旋模型中,通過與客戶的通信獲取客戶的需求,實際上,客戶的需求與最終確定的需求是不一致的,客戶與開發(fā)者之間需要進行協(xié)商,最終達到雙贏的局面。Boehm提出的WINWIN螺旋模型中,客戶與開發(fā)者之間需要識別系統(tǒng)或子系統(tǒng)的關(guān)鍵涉及者(stakeholders)確定涉及者的“win conditions”對這些條件進行協(xié)商獲
18、得互贏條件,29,WINWIN螺旋模型,WINWIN螺旋模型還引入了三個過程的里程碑,被稱為定位點(Anchor points)生命周期目標(biāo)(life cycle objectives)定義了每個主要活動的目標(biāo)生命周期體系結(jié)構(gòu)(life cycle architecture)定義了系統(tǒng)和軟件的體系結(jié)構(gòu)目標(biāo)初步操作能力(initial operational capability)定義了軟件安裝,發(fā)布的目標(biāo)。,30,并行開發(fā)模型,并
19、行開發(fā)模型(concurrent development model)又被稱為并行工程(concurrent engineering)(By Davis and Sitaram)軟件開發(fā)中的所有活動可能同時并存,但是都處于不同的狀態(tài)中并行開發(fā)模型定義了活動從一個狀態(tài)轉(zhuǎn)化為另一個狀態(tài)的事件,31,,,并行開發(fā)模型,,None,Awaiting changes,Under revision,Under review,Baselined,
20、Done,Under development,,,,,,,,,,Analysis activity,32,并行開發(fā)模型,并行過程模型經(jīng)常被用于開發(fā)C/S系統(tǒng)。該系統(tǒng)的活動可以被分為系統(tǒng)維和部件維。系統(tǒng)維包含了設(shè)計,裝配和使用三個活動,而部件維包含了設(shè)計和實現(xiàn)兩個活動。并發(fā)性表現(xiàn)在兩個方面:系統(tǒng)和部件的活動同時發(fā)生各個部件可以并行設(shè)計和開發(fā),33,原型法,原型法原型是項目系統(tǒng)中的一個方面或者多個方面的工作模型。拋棄型原型:用于試驗
21、某些概念,試驗完系統(tǒng)將無用處進化型原型:原型系統(tǒng)不斷被開發(fā)和被修正,最終它變?yōu)橐粋€真正的系統(tǒng)。,34,原型法,原型的好處從實踐中學(xué)習(xí)(Learning by doing)改善的通信改善的用戶參與使部分已知的需求清晰化展示描述的一致性和完整性可能可以減少文檔減少了維護成本特征約束(利用工具構(gòu)造原型可以將某些特性落到實處,而非在紙上寫的那樣容易失誤)試驗是否能產(chǎn)生期待的結(jié)果,35,原型法,原型法的缺點用戶有時誤解了原型
22、的角色,例如他們可能誤解原形應(yīng)該和真實系統(tǒng)一樣可靠缺少項目標(biāo)準(zhǔn),進化原型法有點像編碼修正缺少控制,由于用戶可能不斷提出新要求,因而原型迭代的周期很難控制額外的花費:研究結(jié)果表明構(gòu)造一個原型可能需要10%額外花費運行效率可能會受影響原型法要求開發(fā)者與用戶密切接觸,有時這是不可能的。例如外包軟件。,36,從另外的角度看待原型,從中學(xué)到什么?學(xué)生經(jīng)常會做一些軟件作業(yè),這些作業(yè)也被稱為原型問題:這些原型和軟件系統(tǒng)原型是否相同?作
23、為一個原型必須:描述他們希望從中學(xué)到的東西,規(guī)劃原型評價的方法,報告從原型中真正學(xué)到的內(nèi)容。在不同的階段,原型具有不同的作用。原型起作用的程度實物模型(Mock-ups)仿真交互部分模型:水平,垂直(某些特性構(gòu)造詳細的原型),37,構(gòu)造原型的對象,人機接口系統(tǒng)的功能,38,練習(xí):何時引入原型系統(tǒng),保險公司的經(jīng)理需要通過個人計算機上的一個系統(tǒng)來訪問管理信息。該系統(tǒng)價格必須合適。很多人懷疑是否經(jīng)理真需要使用該系統(tǒng)??尚行匝芯侩A
24、段,采用實物模型的方法支持客戶銷售人員通過電話回答有關(guān)客戶詢問汽車保險價格的系統(tǒng)設(shè)計用戶對話界面時保險公司考慮實施一個基于MS Access的電話銷售系統(tǒng),他們不知道Access是否能夠開發(fā)出相應(yīng)界面的系統(tǒng)并具備足夠快的相應(yīng)時間。方案設(shè)計階段,39,階段交付,階段交付持續(xù)地在確定的階段向用戶展示軟件。和漸進原型不同,在階段交付的時候,你明確地知道下一步要完成什么工作。階段交付的特點是不會在項目結(jié)束的時候一下交付全部軟件,而是在
25、項目整個開發(fā)過程中持續(xù)不斷地交付階段性成果。,40,階段交付,,軟件概念,需求分析,構(gòu)架設(shè)計,階段1:詳細設(shè)計,編碼,調(diào)試,……,階段2:詳細設(shè)計,編碼,調(diào)試,……,,,,,,,,,,,,,,41,階段交付,階段交付的優(yōu)點是項目結(jié)束交付全部成果前,分階段將有用的功能交付給用戶。階段交付的主要缺點是,如果管理層面和技術(shù)層面上缺乏仔細的規(guī)劃,工作就無法進行。使用階段交付的注意點是:必須確定每一階段的交付是對用戶有用的必須確??紤]了不
26、同產(chǎn)品組成部分的技術(shù)依賴關(guān)系,42,面向進度的設(shè)計,類似于階段交付,但是面向進度的設(shè)計生命周期模型在開始的時候不必知道究竟能達到何目標(biāo),但是要確保最后的期限。該模型的關(guān)鍵是要按優(yōu)先級別劃分系統(tǒng)特性并規(guī)劃開發(fā)階段,保證前面的階段具有高優(yōu)先級的特性,低特性具有低優(yōu)先級別。是否采用這種方法決定于你是否對系統(tǒng)目標(biāo)具有足夠的信心,如果有信心,則沒必要采用這種方法。,43,漸進交付,漸進交付是一種跨越了漸進原型和階段交付兩種模型的過程模型?;?/p>
27、本過程:開發(fā)一個產(chǎn)品的版本,展示給用戶,根據(jù)反饋改善產(chǎn)品。如果計劃滿足用戶的絕大部分需求,漸進交付與漸進原型差不多,如果計劃滿足少量的需求,漸進交付就和階段交付差不多。漸進原型,強調(diào)的是系統(tǒng)看得見的樣子,再回來堵漏洞,漸進交付中,最初的重點是系統(tǒng)核心和底層系統(tǒng)功能。,44,,漸進交付,,軟件概念,需求分析,構(gòu)架和內(nèi)核設(shè)計,,,,,,,,,開發(fā)一個版本,并入用戶反饋,交付該版本,開發(fā)一個版本,交付最終版本,,,45,確定漸進交付目標(biāo)的
28、一種方法,價值成本比,46,面向開發(fā)工具的設(shè)計,只在現(xiàn)有軟件工具直接支持的情況下增強產(chǎn)品的功能,如果它不支持,就放棄這些功能。當(dāng)時間成為主要約束時,采用該模型能夠比其他模型能夠更完整地實現(xiàn)功能。該方法的缺點是你失去了很多對產(chǎn)品的控制能力。,47,商品軟件,商品軟件也許未必滿足你所有的要求,但是自己開發(fā)也需要一個周期,到那個時候,商品軟件可能已經(jīng)滿足了你的要求。商品軟件可能存在不足,但是,你自己開發(fā)的產(chǎn)品也未必那么完美,當(dāng)你補充了商
29、品軟件的不足時,也許帶來了新的問題。因而,商品軟件始終是一個值得考慮的方案。,48,案例研究//,某教育部門希望目前的中小學(xué)有一個現(xiàn)代化的信息交流平臺,即校務(wù)管理系統(tǒng),為此他們提出了需求,希望軟件公司能夠開發(fā)此軟件。該軟件是對學(xué)校校務(wù)和教學(xué)活動進行綜合管理的平臺系統(tǒng),是一個學(xué)校和地區(qū)教育信息化的基礎(chǔ)信息平臺,它要完成學(xué)校管理層、教師,學(xué)生,家長等日常工作,學(xué)習(xí),管理,咨詢等任務(wù)。,49,,,50,,,51,,52,,,53,,,54
30、,,,55,過程模型咖啡廳,晚餐菜單歡迎光臨過程模型選擇咖啡廳,希望您好胃口正餐螺旋模型手制烤雞,外配風(fēng)險減少調(diào)味料15.95美元漸進交付模型用水拌成的階段交付及漸進原型15.95美元,56,,階段交付模型五門課程酒席,詳情請問服務(wù)員14.95美元面向進度的設(shè)計各種方法學(xué),特別適合于快速運作11.95美元純瀑布模型按經(jīng)典的原有菜譜制作14.95美元,57,,色拉面向工具的設(shè)計填鴨內(nèi)填各種豆角
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 程序開發(fā)人員招聘要..
- 軟件開發(fā)人員保密協(xié)議
- 軟件開發(fā)人員的保密協(xié)議
- 軟件開發(fā)人員的保密協(xié)議
- 軟件開發(fā)人員任職資格標(biāo)準(zhǔn)
- 軟件開發(fā)人員的疲勞研究.pdf
- 軟件開發(fā)人員辭職報告
- silverlightviewer 開發(fā)人員指南
- 軟件開發(fā)人員的保密協(xié)議[1]
- 軟件眾包的開發(fā)人員和任務(wù)推薦.pdf
- 基于勝任素質(zhì)模型軟件開發(fā)人員的招聘研究.pdf
- 軟件開發(fā)人員的工作總結(jié)范文
- 軟件開發(fā)人員的行為特點和管理對策研究
- 關(guān)于軟件開發(fā)人員辭職報告范文
- it開發(fā)人員的保密協(xié)議(通用)
- it開發(fā)人員的保密協(xié)議(通用)
- 軟件程序開發(fā)人員績效考核表
- 開發(fā)人員筆試題庫
- 軟件開發(fā)人員質(zhì)量缺陷持續(xù)改進研究.pdf
- [計算機]了解macosx系統(tǒng)-開發(fā)人員
評論
0/150
提交評論