開發(fā)人員的訓(xùn)練需要人員招聘開發(fā)環(huán)境——硬件和軟件系統(tǒng)-sjtucs_第1頁
已閱讀1頁,還剩57頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1,第四講 項(xiàng)目方法選擇,,2,內(nèi)容,技術(shù)選擇考慮風(fēng)險(xiǎn)方法選擇:過程模型,3,技術(shù)選擇,技術(shù)選擇將影響:開發(fā)人員的訓(xùn)練需要人員招聘開發(fā)環(huán)境——硬件和軟件系統(tǒng)維護(hù)安排步驟:分析項(xiàng)目是目標(biāo)驅(qū)動的還是產(chǎn)品驅(qū)動的分析項(xiàng)目其他特征面向數(shù)據(jù)還是面向控制通用還是專用是否涉及需要專用工具支持的專門技術(shù)是否有特殊的安全性要求對軟硬件有何要求,4,練習(xí),對下列系統(tǒng)進(jìn)行分類工資支付系統(tǒng)飲料灌裝企業(yè)的控制系統(tǒng)供水企業(yè)管理對企業(yè)

2、供水計(jì)劃的系統(tǒng)支持項(xiàng)目管理的軟件供律師查詢法律條文的系統(tǒng)面向數(shù)據(jù)或特定領(lǐng)域的應(yīng)用系統(tǒng)包含嵌入式軟件的過程控制或者工業(yè)系統(tǒng)使用圖形的信息系統(tǒng)通用信息系統(tǒng)軟件包信息收集的通用軟件包,5,識別項(xiàng)目中的高風(fēng)險(xiǎn),產(chǎn)品不確定性:系統(tǒng)需求理解的準(zhǔn)確性。用戶在開始時有可能對系統(tǒng)應(yīng)該什么樣都無法確定。在某些環(huán)境中,精確而有效的需求描述可能迅速變得過時。過程不確定性:在項(xiàng)目開始時需要選擇方法或過程模型,或者一種新的工具,任何對原先采用的開發(fā)

3、方法的變化都將引入不確定性資源不確定性:項(xiàng)目進(jìn)行中資源的數(shù)量可能發(fā)生變化,6,練習(xí),識別學(xué)院工資系統(tǒng)中的風(fēng)險(xiǎn)金融和職員之間的矛盾職員對系統(tǒng)不接受缺少運(yùn)行該系統(tǒng)的經(jīng)驗(yàn)缺少管理系統(tǒng)的計(jì)算機(jī)專業(yè)人員需求變化,7,選擇方法,考慮用戶關(guān)于實(shí)現(xiàn)的需求用戶可能在合同中限定了有關(guān)實(shí)現(xiàn)方面的方法。例如,規(guī)定了企業(yè)必須具有相應(yīng)的CMM等級,或者通過了ISO9000方法選擇通用的生命周期方法控制系統(tǒng):一般為實(shí)時系統(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)的活動過程模型的選擇基于項(xiàng)目和應(yīng)用的特

5、性,使用的工具和方法,所需要的控制方法和交付物。,10,軟件過程的概念,軟件過程由關(guān)于項(xiàng)目的階段、狀態(tài)、方法、技術(shù)和開發(fā)、維護(hù)軟件的人員以及相關(guān)對象(計(jì)劃、文檔、模型、編碼、測試、手冊等)組成。 一個過程定義了為達(dá)到某個確定的目標(biāo),需要什么人在什么時間以何種方式做何種工作軟件需要一個可用于指導(dǎo)顧客、用戶、開發(fā)人員和項(xiàng)目經(jīng)理等參與者的過程,11,軟件開發(fā)過程,軟件工程的核心是過程。產(chǎn)品、人員、技術(shù)通過過程關(guān)聯(lián)起來。軟件開發(fā)過程能夠?qū)⒓?/p>

6、術(shù)集成在一起從而使軟件的開發(fā)能夠以一種合理而及時的方式完成。,12,有效的軟件過程,有效的軟件過程可以提高組織的生產(chǎn)能力保證軟件開發(fā)的基本原則的實(shí)現(xiàn),輔助軟件項(xiàng)目管理者作出明智的決定; 使軟件開發(fā)活動標(biāo)準(zhǔn)化,提高軟件的可重用性和Team間的協(xié)作;有效的軟件過程也可以改善軟件組織對軟件的維護(hù)能力通過有效地定義如何管理需求變更,使得變更部分能夠在未來的版本中恰當(dāng)分配,實(shí)現(xiàn)平滑過渡; 在具體操作和相關(guān)支持中定義如何平滑地改造軟件,

7、并且這種具體操作和支持是可實(shí)施的;不可實(shí)施的軟件過程被剔除。,13,,,問題求解的一般過程,問題求解的一般過程實(shí)際問題并不能簡單劃為四個階段,各個階段會在問題的不同層次上同時并存軟件開發(fā)實(shí)際上是一個“混沌”(chaos)過程(Raccoon),問題定義,方案集成,技術(shù)開發(fā),現(xiàn)狀,14,編碼修正模型,Code and Fix Code like Hell(魯莽編碼)從一個大致的想法開始工作,然后經(jīng)過非正規(guī)的設(shè)計(jì)、編碼、調(diào)

8、試和測試方法,最后完成工作,,,可能有可能沒有的規(guī)范,發(fā)布(可能),15,編碼修正模型,好處:成本可能很低只需要很少的專業(yè)知識,任何寫過程序的人都可以對于一些非常小的、開發(fā)完后就會很快丟棄的軟件可以采用對于規(guī)模稍大的項(xiàng)目,采用這種模型是很危險(xiǎn)的,16,瀑布模型(Waterfall Model),所有過程模型的祖宗項(xiàng)目從開始到結(jié)束按照一定的順序執(zhí)行瀑布模型是文檔驅(qū)動的,各個階段不連續(xù)也不交叉,17,瀑布模型,發(fā),瀑布模型適應(yīng)于

9、什么場合?有何優(yōu)缺點(diǎn)?,18,瀑布模型,當(dāng)有一個穩(wěn)定的產(chǎn)品定義和很容易被理解的技術(shù)解決方案時,純瀑布模型特別合適當(dāng)你對一個定義得很好的版本進(jìn)行維護(hù)或?qū)⒁粋€產(chǎn)品移植到一個新的平臺上,瀑布模型也特別合適。純瀑布模型能夠降低管理費(fèi)用,因?yàn)槟憧梢灶A(yù)先完成所有計(jì)劃。對于那些容易理解但很復(fù)雜的項(xiàng)目,采用純瀑布模型比較合適,因?yàn)榭梢杂庙樞蚍椒ㄌ幚韱栴}。在質(zhì)量需求高于成本需求和進(jìn)度需求的時候,它尤為出色。當(dāng)開發(fā)隊(duì)伍的技術(shù)力量比較弱或者缺乏經(jīng)驗(yàn)

10、時,瀑布模型更為適合。,19,瀑布模型,純瀑布模型的缺點(diǎn)是在項(xiàng)目開始的時候,在設(shè)計(jì)工作完成前和代碼寫出來前,很難充分描述需求。瀑布模型最主要的問題是缺乏靈活性。必須在項(xiàng)目開始前說明全部需求。但這恰恰是非常困難的。,20,瀑布模型變種:V型模型,該方法是對瀑布模型的修正,強(qiáng)調(diào)了驗(yàn)證活動,21,,,,,,,瀑布模型變種:生魚片模型,把階段重疊起來的瀑布模型起源于日本硬件開發(fā)模型(富士通—施樂),軟件概念,需求分析,架構(gòu)設(shè)計(jì),詳細(xì)設(shè)計(jì),編

11、碼和調(diào)試,系統(tǒng)測試,22,瀑布模型變種:生魚片模型,傳統(tǒng)的瀑布模型強(qiáng)調(diào)階段之間最小的重疊,而生魚片模型強(qiáng)調(diào)大幅度的重疊,即在需求分析完成之前就可以進(jìn)行架構(gòu)設(shè)計(jì)和部分詳細(xì)設(shè)計(jì)純瀑布模型強(qiáng)調(diào)在任意兩個階段交接時,文檔從一個團(tuán)隊(duì)交給另一個完全隔離的團(tuán)隊(duì),但是如果一個團(tuán)隊(duì)完成各個階段任務(wù)時,可以沒有那么多文檔。問題:缺點(diǎn)是什么?生魚片模型因?yàn)殡A段重疊,因而里程碑不明確,很難有效地進(jìn)行過程跟蹤和控制。,23,瀑布模型變種:具有子項(xiàng)目的瀑布模

12、型,純瀑布模型的一個問題是必須完成全部的架構(gòu)設(shè)計(jì)后才能進(jìn)行詳細(xì)設(shè)計(jì),但是,整個系統(tǒng)中有些部分可能有些特殊性,可以有自己的步驟,即將這些部分劃分為為子項(xiàng)目。問題:該模型有何問題?這種方法的主要風(fēng)險(xiǎn)是相關(guān)性無法預(yù)料。,24,瀑布模型變種:能夠降低風(fēng)險(xiǎn)的瀑布模型,純瀑布模型要求在開始架構(gòu)設(shè)計(jì)前,必須將用戶的所有需求都搞清楚,但是實(shí)際中是很困難的。可降低風(fēng)險(xiǎn)的瀑布模型是在頂端,即需求分析和架構(gòu)設(shè)計(jì)階段引入螺旋以便降低風(fēng)險(xiǎn)。在該螺旋中,先

13、開發(fā)一個用戶界面原型,采用系統(tǒng)情節(jié)串聯(lián)圖版(system storyboarding)引導(dǎo)用戶提出需求,記錄用戶與系統(tǒng)的交互操作方式,或者采用其它需求獲取方法。,25,螺旋模型,Spiral 模型(Boehm提出)以風(fēng)險(xiǎn)為導(dǎo)向的生命期模型從一個小范圍的關(guān)鍵中心地帶開始尋找風(fēng)險(xiǎn)因素,制定風(fēng)險(xiǎn)控制計(jì)劃,并交付給下一步驟,如此迭代,每次迭代將項(xiàng)目擴(kuò)展到一個更大的規(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)缺點(diǎn)?,27,螺旋模型,優(yōu)勢:隨著迭代的增加(成

17、本的增加),風(fēng)險(xiǎn)程度隨之降低缺陷:比較復(fù)雜,需要責(zé)任心,專注和管理方面的知識。,28,WINWIN螺旋模型,在螺旋模型中,通過與客戶的通信獲取客戶的需求,實(shí)際上,客戶的需求與最終確定的需求是不一致的,客戶與開發(fā)者之間需要進(jìn)行協(xié)商,最終達(dá)到雙贏的局面。Boehm提出的WINWIN螺旋模型中,客戶與開發(fā)者之間需要識別系統(tǒng)或子系統(tǒng)的關(guān)鍵涉及者(stakeholders)確定涉及者的“win conditions”對這些條件進(jìn)行協(xié)商獲

18、得互贏條件,29,WINWIN螺旋模型,WINWIN螺旋模型還引入了三個過程的里程碑,被稱為定位點(diǎn)(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è)計(jì),裝配和使用三個活動,而部件維包含了設(shè)計(jì)和實(shí)現(xiàn)兩個活動。并發(fā)性表現(xiàn)在兩個方面:系統(tǒng)和部件的活動同時發(fā)生各個部件可以并行設(shè)計(jì)和開發(fā),33,原型法,原型法原型是項(xiàng)目系統(tǒng)中的一個方面或者多個方面的工作模型。拋棄型原型:用于試驗(yàn)

21、某些概念,試驗(yàn)完系統(tǒng)將無用處進(jìn)化型原型:原型系統(tǒng)不斷被開發(fā)和被修正,最終它變?yōu)橐粋€真正的系統(tǒng)。,34,原型法,原型的好處從實(shí)踐中學(xué)習(xí)(Learning by doing)改善的通信改善的用戶參與使部分已知的需求清晰化展示描述的一致性和完整性可能可以減少文檔減少了維護(hù)成本特征約束(利用工具構(gòu)造原型可以將某些特性落到實(shí)處,而非在紙上寫的那樣容易失誤)試驗(yàn)是否能產(chǎn)生期待的結(jié)果,35,原型法,原型法的缺點(diǎn)用戶有時誤解了原型

22、的角色,例如他們可能誤解原形應(yīng)該和真實(shí)系統(tǒng)一樣可靠缺少項(xiàng)目標(biāo)準(zhǔn),進(jìn)化原型法有點(diǎn)像編碼修正缺少控制,由于用戶可能不斷提出新要求,因而原型迭代的周期很難控制額外的花費(fèi):研究結(jié)果表明構(gòu)造一個原型可能需要10%額外花費(fèi)運(yùn)行效率可能會受影響原型法要求開發(fā)者與用戶密切接觸,有時這是不可能的。例如外包軟件。,36,從另外的角度看待原型,從中學(xué)到什么?學(xué)生經(jīng)常會做一些軟件作業(yè),這些作業(yè)也被稱為原型問題:這些原型和軟件系統(tǒng)原型是否相同?作

23、為一個原型必須:描述他們希望從中學(xué)到的東西,規(guī)劃原型評價的方法,報(bào)告從原型中真正學(xué)到的內(nèi)容。在不同的階段,原型具有不同的作用。原型起作用的程度實(shí)物模型(Mock-ups)仿真交互部分模型:水平,垂直(某些特性構(gòu)造詳細(xì)的原型),37,構(gòu)造原型的對象,人機(jī)接口系統(tǒng)的功能,38,練習(xí):何時引入原型系統(tǒng),保險(xiǎn)公司的經(jīng)理需要通過個人計(jì)算機(jī)上的一個系統(tǒng)來訪問管理信息。該系統(tǒng)價格必須合適。很多人懷疑是否經(jīng)理真需要使用該系統(tǒng)??尚行匝芯侩A

24、段,采用實(shí)物模型的方法支持客戶銷售人員通過電話回答有關(guān)客戶詢問汽車保險(xiǎn)價格的系統(tǒng)設(shè)計(jì)用戶對話界面時保險(xiǎn)公司考慮實(shí)施一個基于MS Access的電話銷售系統(tǒng),他們不知道Access是否能夠開發(fā)出相應(yīng)界面的系統(tǒng)并具備足夠快的相應(yīng)時間。方案設(shè)計(jì)階段,39,階段交付,階段交付持續(xù)地在確定的階段向用戶展示軟件。和漸進(jìn)原型不同,在階段交付的時候,你明確地知道下一步要完成什么工作。階段交付的特點(diǎn)是不會在項(xiàng)目結(jié)束的時候一下交付全部軟件,而是在

25、項(xiàng)目整個開發(fā)過程中持續(xù)不斷地交付階段性成果。,40,階段交付,,軟件概念,需求分析,構(gòu)架設(shè)計(jì),階段1:詳細(xì)設(shè)計(jì),編碼,調(diào)試,……,階段2:詳細(xì)設(shè)計(jì),編碼,調(diào)試,……,,,,,,,,,,,,,,41,階段交付,階段交付的優(yōu)點(diǎn)是項(xiàng)目結(jié)束交付全部成果前,分階段將有用的功能交付給用戶。階段交付的主要缺點(diǎn)是,如果管理層面和技術(shù)層面上缺乏仔細(xì)的規(guī)劃,工作就無法進(jìn)行。使用階段交付的注意點(diǎn)是:必須確定每一階段的交付是對用戶有用的必須確??紤]了不

26、同產(chǎn)品組成部分的技術(shù)依賴關(guān)系,42,面向進(jìn)度的設(shè)計(jì),類似于階段交付,但是面向進(jìn)度的設(shè)計(jì)生命周期模型在開始的時候不必知道究竟能達(dá)到何目標(biāo),但是要確保最后的期限。該模型的關(guān)鍵是要按優(yōu)先級別劃分系統(tǒng)特性并規(guī)劃開發(fā)階段,保證前面的階段具有高優(yōu)先級的特性,低特性具有低優(yōu)先級別。是否采用這種方法決定于你是否對系統(tǒng)目標(biāo)具有足夠的信心,如果有信心,則沒必要采用這種方法。,43,漸進(jìn)交付,漸進(jìn)交付是一種跨越了漸進(jìn)原型和階段交付兩種模型的過程模型?;?/p>

27、本過程:開發(fā)一個產(chǎn)品的版本,展示給用戶,根據(jù)反饋改善產(chǎn)品。如果計(jì)劃滿足用戶的絕大部分需求,漸進(jìn)交付與漸進(jìn)原型差不多,如果計(jì)劃滿足少量的需求,漸進(jìn)交付就和階段交付差不多。漸進(jìn)原型,強(qiáng)調(diào)的是系統(tǒng)看得見的樣子,再回來堵漏洞,漸進(jìn)交付中,最初的重點(diǎn)是系統(tǒng)核心和底層系統(tǒng)功能。,44,,漸進(jìn)交付,,軟件概念,需求分析,構(gòu)架和內(nèi)核設(shè)計(jì),,,,,,,,,開發(fā)一個版本,并入用戶反饋,交付該版本,開發(fā)一個版本,交付最終版本,,,45,確定漸進(jìn)交付目標(biāo)的

28、一種方法,價值成本比,46,面向開發(fā)工具的設(shè)計(jì),只在現(xiàn)有軟件工具直接支持的情況下增強(qiáng)產(chǎn)品的功能,如果它不支持,就放棄這些功能。當(dāng)時間成為主要約束時,采用該模型能夠比其他模型能夠更完整地實(shí)現(xiàn)功能。該方法的缺點(diǎn)是你失去了很多對產(chǎn)品的控制能力。,47,商品軟件,商品軟件也許未必滿足你所有的要求,但是自己開發(fā)也需要一個周期,到那個時候,商品軟件可能已經(jīng)滿足了你的要求。商品軟件可能存在不足,但是,你自己開發(fā)的產(chǎn)品也未必那么完美,當(dāng)你補(bǔ)充了商

29、品軟件的不足時,也許帶來了新的問題。因而,商品軟件始終是一個值得考慮的方案。,48,案例研究//,某教育部門希望目前的中小學(xué)有一個現(xiàn)代化的信息交流平臺,即校務(wù)管理系統(tǒng),為此他們提出了需求,希望軟件公司能夠開發(fā)此軟件。該軟件是對學(xué)校校務(wù)和教學(xué)活動進(jìn)行綜合管理的平臺系統(tǒng),是一個學(xué)校和地區(qū)教育信息化的基礎(chǔ)信息平臺,它要完成學(xué)校管理層、教師,學(xué)生,家長等日常工作,學(xué)習(xí),管理,咨詢等任務(wù)。,49,,,50,,,51,,52,,,53,,,54

30、,,,55,過程模型咖啡廳,晚餐菜單歡迎光臨過程模型選擇咖啡廳,希望您好胃口正餐螺旋模型手制烤雞,外配風(fēng)險(xiǎn)減少調(diào)味料15.95美元漸進(jìn)交付模型用水拌成的階段交付及漸進(jìn)原型15.95美元,56,,階段交付模型五門課程酒席,詳情請問服務(wù)員14.95美元面向進(jìn)度的設(shè)計(jì)各種方法學(xué),特別適合于快速運(yùn)作11.95美元純瀑布模型按經(jīng)典的原有菜譜制作14.95美元,57,,色拉面向工具的設(shè)計(jì)填鴨內(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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論