軟件工程概論-計(jì)算機(jī)軟件基礎(chǔ)課件_第1頁
軟件工程概論-計(jì)算機(jī)軟件基礎(chǔ)課件_第2頁
軟件工程概論-計(jì)算機(jī)軟件基礎(chǔ)課件_第3頁
軟件工程概論-計(jì)算機(jī)軟件基礎(chǔ)課件_第4頁
軟件工程概論-計(jì)算機(jī)軟件基礎(chǔ)課件_第5頁
已閱讀5頁,還剩223頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

計(jì)算機(jī)軟件基礎(chǔ)

Thesoftwarebasicofcomputer

主講:劉志強(qiáng)第15單元軟件工程概論1計(jì)算機(jī)軟件基礎(chǔ)

Thesoftwarebasicof教學(xué)目標(biāo)了解軟件工程的基本概念掌握軟件工程的基本理論、技術(shù)和方法,運(yùn)用于軟件的開發(fā)和生產(chǎn)2教學(xué)目標(biāo)了解軟件工程的基本概念2教學(xué)內(nèi)容了解軟件、軟件工程的基本概念軟件的特征軟件危機(jī)、軟件工程瀑布模型、原型模型軟件生存周期中各個階段的任務(wù)、實(shí)施方法及步驟3教學(xué)內(nèi)容了解軟件、軟件工程的基本概念3本單元涉及內(nèi)容概述軟件的基本概念軟件的發(fā)展和軟件危機(jī)第9章軟件工程9.1軟件工程9.2軟件生存周期9.3軟件工程管理4本單元涉及內(nèi)容概述4一、基本概念軟件計(jì)算機(jī)系統(tǒng)中所有程序、數(shù)據(jù)結(jié)構(gòu)及有關(guān)文檔資料的總稱。軟件是計(jì)算機(jī)技術(shù)和人類智慧高度結(jié)合的產(chǎn)物,軟件開發(fā)不是簡單、機(jī)械地重復(fù)生產(chǎn),而是創(chuàng)造性的腦力勞動。軟件的作用軟件是今后信息產(chǎn)業(yè)發(fā)展的推動力。美國最近在24項(xiàng)高科技領(lǐng)域中調(diào)查結(jié)果表明,其中18項(xiàng)與軟件有關(guān)。5一、基本概念軟件計(jì)算機(jī)系統(tǒng)中所有程序、數(shù)據(jù)結(jié)構(gòu)及有關(guān)文檔資軟件工程學(xué)的體系結(jié)構(gòu)

軟件工程學(xué)軟件開發(fā)技術(shù)軟件開發(fā)方法學(xué)軟件工具軟件工程環(huán)境軟件工程管理軟件管理學(xué)軟件經(jīng)濟(jì)學(xué)6軟件工程學(xué)的體系結(jié)構(gòu)軟件工程學(xué)軟件開發(fā)技術(shù)軟件開發(fā)方法學(xué)軟問題的由來軟件內(nèi)在規(guī)律。任何事物有它自己的客觀規(guī)律和發(fā)展軌跡。只有認(rèn)識了它,才能駕馭它。軟件地位及作用。軟件是計(jì)算機(jī)系統(tǒng)中重要的組成部分。但在早期它并沒有引起業(yè)界的重視。隨著計(jì)算機(jī)技術(shù)的發(fā)展,隨著“軟件危機(jī)”的出現(xiàn),以及軟件危機(jī)對社會危害的增大,軟件的地位和作用也越來越重要。軟件工程學(xué)。業(yè)界人士不得不設(shè)置專門的學(xué)科——軟件工程學(xué)來研究軟件開發(fā)、生產(chǎn)的內(nèi)在規(guī)律,用于指導(dǎo)現(xiàn)代工程化的軟件生產(chǎn)。7問題的由來軟件內(nèi)在規(guī)律。任何事物有它自己的客觀規(guī)律和發(fā)展軌跡軟件的特征(與硬件產(chǎn)品比較)軟件是邏輯產(chǎn)品軟件產(chǎn)品質(zhì)量的體現(xiàn)方式不同軟件產(chǎn)品的失敗曲線不同軟件產(chǎn)品的成本構(gòu)成不同軟件產(chǎn)品不存在同類零件替換軟件產(chǎn)品的靜態(tài)和動態(tài)屬性8軟件的特征(與硬件產(chǎn)品比較)軟件是邏輯產(chǎn)品8軟件是邏輯產(chǎn)品軟件產(chǎn)品具有產(chǎn)值、價格、質(zhì)量和功能的特性,但看不見,是邏輯的、無形的,是腦力勞動的結(jié)晶。9軟件是邏輯產(chǎn)品軟件產(chǎn)品具有產(chǎn)值、價格、質(zhì)量和功能的特性,但看軟件產(chǎn)品質(zhì)量體現(xiàn)方式不同質(zhì)量體現(xiàn)方式不同:實(shí)用、可靠、可操作性;可維護(hù)性強(qiáng)方便用戶不會折舊、損壞、老化10軟件產(chǎn)品質(zhì)量體現(xiàn)方式不同質(zhì)量體現(xiàn)方式不同:10軟、硬件失敗曲線

11軟、硬件失敗曲線11成本構(gòu)成不同

12%需求率4%生產(chǎn)率開發(fā)人員成本構(gòu)成不同:主要投資在研制;軟件研制是一種人力、資金密集的產(chǎn)業(yè),而軟件生產(chǎn)只是簡單的復(fù)制、安裝和培訓(xùn)。12成本構(gòu)成不同12%需求率4%生產(chǎn)率開發(fā)人員成本構(gòu)成不同:軟件產(chǎn)品不存在同類零件替換硬件可更換零部件。當(dāng)硬件產(chǎn)品中某個部件損壞后,可以用相同的備用部件更換,使硬件系統(tǒng)恢復(fù)正常工作。軟件不能更換零部件。而軟件產(chǎn)品卻沒有相同的備用部件可言,因?yàn)檐浖霈F(xiàn)的每一個故障,要么是由于設(shè)計(jì)考慮不周造成的,要么是編程錯誤造成的。由于軟件無備用部件可供更換,因而軟件維護(hù)比硬件維護(hù)要復(fù)雜得多,成本也高得多。13軟件產(chǎn)品不存在同類零件替換硬件可更換零部件。當(dāng)硬件產(chǎn)品中某個軟件產(chǎn)品的靜態(tài)和動態(tài)屬性軟件是由程序和相關(guān)文檔資料組成的。程序是具有雙重屬性的:交流。它是求解客觀問題的邏輯描述,是供閱讀和交流的,它的表示是靜態(tài)的;執(zhí)行。程序最終是通過運(yùn)行去執(zhí)行特定的操作和數(shù)據(jù)處理,它又具有極其復(fù)雜和豐富內(nèi)涵的動態(tài)屬性。程序是否正確的有雙重標(biāo)準(zhǔn):靜態(tài)的程序正確與否是檢查它的語法和句法是否符合規(guī)則要求;動態(tài)的程序正確與否則要動態(tài)的測試程序的所有邏輯流結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)是否正確。而后一種測試的難度和代價較之前一種要大得多。14軟件產(chǎn)品的靜態(tài)和動態(tài)屬性軟件是由程序和相關(guān)文檔資料組成的。1硬件生產(chǎn)率大幅提高如今,計(jì)算機(jī)的發(fā)展已進(jìn)入一個新的歷史階段;硬件產(chǎn)品已系列化、標(biāo)準(zhǔn)化,“即插即用”。硬件產(chǎn)品的生產(chǎn)可以采用最高精尖的現(xiàn)代化工具和手段、自動成批生產(chǎn)。生產(chǎn)效率幾百萬倍的提高。生產(chǎn)能力過剩。返回15硬件生產(chǎn)率大幅提高如今,計(jì)算機(jī)的發(fā)展已進(jìn)入一個新的歷史階段;軟件生產(chǎn)率很低伴隨計(jì)算機(jī)的普及,整個社會對計(jì)算機(jī)應(yīng)用的需求越來越大。但軟件的生產(chǎn)卻還沿用“手工作坊”的生產(chǎn)方式,人工編程生產(chǎn)。生產(chǎn)效率僅提高了幾倍。生產(chǎn)能力極其低下。返回16軟件生產(chǎn)率很低伴隨計(jì)算機(jī)的普及,整個社會對計(jì)算機(jī)應(yīng)用的需求越硬、軟件供需失衡社會大量需求,生產(chǎn)成本高,生產(chǎn)過程控制復(fù)雜,生產(chǎn)效率低等等因素構(gòu)成軟件生產(chǎn)的惡性循環(huán)。由此產(chǎn)生“軟件危機(jī)”。返回17硬、軟件供需失衡社會大量需求,生產(chǎn)成本高,生產(chǎn)過程控制復(fù)雜,矛盾引發(fā)“軟件危機(jī)”軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。為了研究、解決軟件危機(jī),誕生了一門新興學(xué)科——軟件工程學(xué)。它把軟件作為工程對象,從技術(shù)措施和組織管理兩個方面來研究、解決軟件危機(jī)。18矛盾引發(fā)“軟件危機(jī)”軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程軟件危機(jī)的具體體現(xiàn)(1)軟件開發(fā)進(jìn)度難以預(yù)測(2)軟件開發(fā)成本難以控制(3)用戶對軟件功能難以滿足(4)軟件產(chǎn)品質(zhì)量無法保證(5)軟件產(chǎn)品難以維護(hù)(6)軟件缺少文檔資料19軟件危機(jī)的具體體現(xiàn)(1)軟件開發(fā)進(jìn)度難以預(yù)測19(1)軟件開發(fā)進(jìn)度難以預(yù)測拖延工期幾個月甚至幾年的現(xiàn)象并不罕見,這種現(xiàn)象降低了軟件開發(fā)組織的信譽(yù)。以丹佛新國際機(jī)場為例。該機(jī)場規(guī)模是曼哈頓機(jī)場的兩倍,寬為希思機(jī)場的10倍,可以全天侯同時起降三架噴氣式客機(jī);投資1.93億美元建立了一個地下行李傳送系統(tǒng),總長21英里,有4,000臺遙控車,可按不同線路在20家不同的航空公司柜臺、登機(jī)門和行李領(lǐng)取處之間發(fā)送和傳遞行李;支持該系統(tǒng)的是5,000個電子眼、400臺無線電接受機(jī)、56臺條形碼掃描儀和100臺計(jì)算機(jī)。按原定計(jì)劃要在1993年萬圣節(jié)前啟用,但一直到1994年6月,機(jī)場的計(jì)劃者還無法預(yù)測行李系統(tǒng)何時能達(dá)到可使機(jī)場開放的穩(wěn)定程度。20(1)軟件開發(fā)進(jìn)度難以預(yù)測拖延工期幾個月甚至幾年的現(xiàn)象并不罕(2)軟件開發(fā)成本難以控制投資一再追加,令人難于置信。往往是實(shí)際成本比預(yù)算成本高出一個數(shù)量級。而為了趕進(jìn)度和節(jié)約成本所采取的一些權(quán)宜之計(jì)又往往損害了軟件產(chǎn)品的質(zhì)量,從而不可避免地會引起用戶的不滿。21(2)軟件開發(fā)成本難以控制投資一再追加,令人難于置信。往往是(3)用戶對產(chǎn)品功能難以滿足開發(fā)人員和用戶之間很難溝通、矛盾很難統(tǒng)一。往往是軟件開發(fā)人員不能真正了解用戶的需求,而用戶又不了解計(jì)算機(jī)求解問題的模式和能力,雙方無法用共同熟悉的語言進(jìn)行交流和描述。在雙方互不充分了解的情況下,就倉促上陣設(shè)計(jì)系統(tǒng)、匆忙著手編寫程序,這種“閉門造車”的開發(fā)方式必然導(dǎo)致最終的產(chǎn)品不符合用戶的實(shí)際需要。22(3)用戶對產(chǎn)品功能難以滿足開發(fā)人員和用戶之間很難溝通、矛盾(4)軟件產(chǎn)品質(zhì)量無法保證系統(tǒng)中的錯誤難以消除。軟件是邏輯產(chǎn)品,質(zhì)量問題很難以統(tǒng)一的標(biāo)準(zhǔn)度量,因而造成質(zhì)量控制困難。軟件產(chǎn)品并不是沒有錯誤,而是盲目檢測很難發(fā)現(xiàn)錯誤,而隱藏下來的錯誤往往是造成重大事故的隱患。23(4)軟件產(chǎn)品質(zhì)量無法保證系統(tǒng)中的錯誤難以消除。軟件是邏輯產(chǎn)(5)軟件產(chǎn)品難以維護(hù)軟件產(chǎn)品本質(zhì)上是開發(fā)人員的代碼化的邏輯思維活動,他人難以替代。除非是開發(fā)者本人,否則很難及時檢測、排除系統(tǒng)故障。為使系統(tǒng)適應(yīng)新的硬件環(huán)境,或根據(jù)用戶的需要在原系統(tǒng)中增加一些新的功能,又有可能增加系統(tǒng)中的錯誤。24(5)軟件產(chǎn)品難以維護(hù)軟件產(chǎn)品本質(zhì)上是開發(fā)人員的代碼化的邏輯(6)軟件缺少適當(dāng)?shù)奈臋n資料文檔資料是軟件必不可少的重要組成部分。實(shí)際上,軟件的文檔資料是開發(fā)組織和用戶的之間權(quán)利和義務(wù)的合同書,是系統(tǒng)管理者、總體設(shè)計(jì)者向開發(fā)人員下達(dá)的任務(wù)書,是系統(tǒng)維護(hù)人員的技術(shù)指導(dǎo)手冊,是用戶的操作說明書。缺乏必要的文檔資料或者文檔資料不合格,將給軟件開發(fā)和維護(hù)帶來許多嚴(yán)重的困難和問題。25(6)軟件缺少適當(dāng)?shù)奈臋n資料文檔資料是軟件必不可少的重要組成軟件生產(chǎn)隨規(guī)模增大而復(fù)雜度增大以美國宇航局的軟件系統(tǒng)為例:1963年水星計(jì)劃系統(tǒng)200萬條指令1967年雙子星座計(jì)劃系統(tǒng)400萬條指令1973年阿波羅計(jì)劃系統(tǒng)1000萬條指令1979年哥倫比亞航天飛機(jī)系統(tǒng)4000萬條指令假設(shè)1個人一年生產(chǎn)一萬條有效指令,那么是否4000人生產(chǎn)一年,或400人生產(chǎn)10年就能完成任務(wù)嗎?答案是否定的。一萬條指令的復(fù)雜度決不僅僅是100條指令復(fù)雜度的100倍。26軟件生產(chǎn)隨規(guī)模增大而復(fù)雜度增大以美國宇航局的軟件系統(tǒng)為例:2典型失敗系統(tǒng)的例子IBM公司開發(fā)OS/360系統(tǒng),共有4000多個模塊,約100萬條指令,投入5000人年,耗資數(shù)億美元,結(jié)果還是延期交付。在交付使用后的系統(tǒng)中仍發(fā)現(xiàn)大量(2000個以上)的錯誤。27典型失敗系統(tǒng)的例子IBM公司開發(fā)OS/360系統(tǒng),共有400軟件危機(jī)產(chǎn)生的原因產(chǎn)生軟件危機(jī)有兩個方面的原因:內(nèi)部因素。與軟件本身的特點(diǎn)有關(guān)。內(nèi)在因素是客觀的存在,只能因勢利導(dǎo)加以解決。外部因素。與軟件開發(fā)和維護(hù)的技術(shù)方法有關(guān)。外部因素是可以完善、提高的。28軟件危機(jī)產(chǎn)生的原因產(chǎn)生軟件危機(jī)有兩個方面的原因:28軟件特點(diǎn)的因素軟件是邏輯產(chǎn)品,是代碼化了的人的思維活動。在總體構(gòu)思時,別人無法管理和干預(yù)。在寫出程序、并在機(jī)器上運(yùn)行之前,進(jìn)展情況難以掌握,開發(fā)質(zhì)量也無法評估。這些都給管理和控制帶來不便。軟件是特定問題在計(jì)算機(jī)上的運(yùn)行描述。實(shí)際問題的復(fù)雜性決定了一個實(shí)用軟件系統(tǒng)規(guī)模往往十分龐大。程序規(guī)模越大,控制、管理難度也就越大。29軟件特點(diǎn)的因素軟件是邏輯產(chǎn)品,是代碼化了的人的思維活動。在總軟件開發(fā)維護(hù)技術(shù)方法的因素開發(fā)人員和用戶之間的矛盾。許多軟件系統(tǒng)開發(fā)失敗的主要原因是開發(fā)人員在沒有準(zhǔn)確、完整地了解了用戶的需求后就急于編程;用戶對需求也往往不能準(zhǔn)確、完整地提出。軟件產(chǎn)品有其生命周期。在周期的各個階段有其具體的任務(wù),如何完成任務(wù),各個階段有不同的技術(shù)方法和操作步驟。只有科學(xué)的按生命周期各階段的任務(wù)去組織實(shí)施,才能保證質(zhì)量,降低成本;急于求成,不按科學(xué)規(guī)律、方法實(shí)施,只能“事倍功半”,事與愿違。軟件產(chǎn)品的使用壽命很長。在這期間因功能的增加、硬件的更新?lián)Q代,都要對軟件進(jìn)行必要的修改。據(jù)統(tǒng)計(jì)數(shù)據(jù)表明,軟件維護(hù)的費(fèi)用占總費(fèi)用的55%~70%。軟件工程的一個重要目標(biāo)就是提高軟件的可維護(hù)性,減少軟件維護(hù)的代價。30軟件開發(fā)維護(hù)技術(shù)方法的因素開發(fā)人員和用戶之間的矛盾。許多軟件解決軟件危機(jī)的途徑為了解決軟件危機(jī)就要從技術(shù)措施和組織管理兩個方面去研究,不斷總結(jié)經(jīng)驗(yàn)教訓(xùn),提高軟件產(chǎn)品的生產(chǎn)效率,降低軟件開發(fā)和維護(hù)的成本。開發(fā)軟件選用最好的開發(fā)工具是至關(guān)重要的,即選擇、設(shè)置良好的軟件工程支撐環(huán)境。工具選用的好,它可以“放大”人的智力,大大加快軟件開發(fā)速度,提高軟件質(zhì)量。31解決軟件危機(jī)的途徑為了解決軟件危機(jī)就要從技術(shù)措施和組織管理兩軟件開發(fā)的演變過程程序設(shè)計(jì)階段軟件設(shè)計(jì)階段軟件工程階段32軟件開發(fā)的演變過程程序設(shè)計(jì)階段32程序設(shè)計(jì)階段(1946年~1955年)特點(diǎn):尚無軟件的概念,程序設(shè)計(jì)主要圍繞硬件進(jìn)行開發(fā),規(guī)模很小,工具簡單,無明確分工(開發(fā)者和用戶),程序設(shè)計(jì)追求節(jié)省空間和編程技巧,無文檔資料。主要是用于科學(xué)計(jì)算。33程序設(shè)計(jì)階段(1946年~1955年)特點(diǎn):33軟件設(shè)計(jì)階段(1956年~1970年)特點(diǎn):硬件環(huán)境相對穩(wěn)定,出現(xiàn)“軟件作坊”的開發(fā)組織形式。開始使用產(chǎn)品軟件(可購買),從而建立了軟件的概念。系統(tǒng)規(guī)模越來越龐大,高級編程語言層出不窮,應(yīng)用領(lǐng)域不斷拓寬,開發(fā)者和用戶有了明確分工,社會對軟件的需求量劇增。但是軟件開發(fā)技術(shù)沒有重大突破,生產(chǎn)效率低下,從而導(dǎo)致“軟件危機(jī)”產(chǎn)生。34軟件設(shè)計(jì)階段(1956年~1970年)特點(diǎn):34軟件工程階段(1970年~至今)由于軟件危機(jī)的產(chǎn)生,迫使人們不得不研究、改變軟件開發(fā)的技術(shù)手段和管理方法。從此軟件生產(chǎn)進(jìn)入軟件工程時代。特點(diǎn):硬件已向“四化”(巨型、微型、網(wǎng)絡(luò)、智能)發(fā)展,數(shù)據(jù)庫技術(shù)已成熟并廣泛應(yīng)用,第三、四代語言出現(xiàn)。第一代軟件技術(shù)——結(jié)構(gòu)化程序設(shè)計(jì)在數(shù)值計(jì)算領(lǐng)域取得優(yōu)異成績;第二代軟件技術(shù)——軟件測試技術(shù)、方法、原理用于軟件生產(chǎn)過程;第三代軟件技術(shù)——處理需求定義技術(shù),用于軟件需求分析和描述。35軟件工程階段(1970年~至今)由于軟件危機(jī)的產(chǎn)生,迫使人們二、軟件工程“軟件工程”一詞是1968年北大西洋公約組織的計(jì)算機(jī)科學(xué)家在當(dāng)時聯(lián)邦德國召開的專門討論解決“軟件危機(jī)”的國際會議上正式提出并使用的,并由此誕生了一門新興學(xué)科——軟件工程學(xué)。“軟件工程學(xué)”是一門交叉學(xué)科,它涉及計(jì)算機(jī)科學(xué)、管理科學(xué)、工程學(xué)和數(shù)學(xué)。計(jì)算機(jī)科學(xué)培養(yǎng)的是計(jì)算機(jī)科學(xué)家,而軟件工程則是培養(yǎng)軟件工程師。36二、軟件工程“軟件工程”一詞是1968年北大西洋公約組織的計(jì)軟件工程的目標(biāo)軟件工程的基本目標(biāo)是:開發(fā)盡可能多的軟件產(chǎn)品;提高軟件的生產(chǎn)效率;滿足應(yīng)用的功能需要;降低軟件開發(fā)成本。37軟件工程的目標(biāo)軟件工程的基本目標(biāo)是:37軟件工程的指導(dǎo)思想為解決軟件危機(jī),把“軟件”這種特殊商品的生產(chǎn)、管理過程納入傳統(tǒng)工程管理的軌道;用計(jì)算機(jī)科學(xué)中的最新成果應(yīng)用于軟件工程中用管理學(xué)的原理和方法進(jìn)行軟件生產(chǎn)管理用工程學(xué)的觀點(diǎn)進(jìn)行核算,制定工程進(jìn)度和實(shí)施方案用數(shù)學(xué)方法建立軟件的可靠模型和各種有效算法38軟件工程的指導(dǎo)思想為解決軟件危機(jī),把“軟件”這種特殊商品的生軟件工程基本原理自1968年提出“軟件工程”的概念以來,專家學(xué)者又陸續(xù)突出了100多條關(guān)于軟件工程的準(zhǔn)則。著名軟件工程專家B.W.Boehm于1983年發(fā)表的一篇論文中提出了軟件工程的七條基本原理。他認(rèn)為這七條原理是確保軟件產(chǎn)品質(zhì)量和開發(fā)效率的最小準(zhǔn)則集合。39軟件工程基本原理自1968年提出“軟件工程”的概念以來,專家軟件工程七條基本原理用分階段的生命周期計(jì)劃嚴(yán)格管理堅(jiān)持進(jìn)行階段評審實(shí)行嚴(yán)格的產(chǎn)品控制采用現(xiàn)代程序設(shè)計(jì)技術(shù)結(jié)果應(yīng)能清楚地審查開發(fā)小組人員少而精承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性40軟件工程七條基本原理用分階段的生命周期計(jì)劃嚴(yán)格管理40用分階段生命周期計(jì)劃嚴(yán)格管理在軟件的整個生命周期中應(yīng)該制定并嚴(yán)格執(zhí)行六類計(jì)劃:項(xiàng)目概要、項(xiàng)目進(jìn)度表、項(xiàng)目控制、產(chǎn)品控制、驗(yàn)證及運(yùn)行維護(hù)計(jì)劃。不同層次的管理人員必須嚴(yán)格按照計(jì)劃各盡其職地去管理軟件開發(fā)與維護(hù)工作,絕不能受客戶或上級的影響而擅自背離預(yù)定計(jì)劃。41用分階段生命周期計(jì)劃嚴(yán)格管理在軟件的整個生命周期中應(yīng)該制定并堅(jiān)持進(jìn)行階段評審軟件的質(zhì)量保證工作不能等到編碼階段結(jié)束之后再進(jìn)行。這是因?yàn)椋捍蟛糠皱e誤是在編碼之前造成的(根據(jù)Boehm統(tǒng)計(jì),設(shè)計(jì)錯誤占軟件錯誤的63%,編碼錯誤占37%)。錯誤發(fā)現(xiàn)與改正得越晚,所付出的代價也越高。因此,在每個階段進(jìn)行嚴(yán)格的評審,盡早發(fā)現(xiàn)并修正各個階段中所犯的錯誤是一條必須遵循的重要原則。42堅(jiān)持進(jìn)行階段評審軟件的質(zhì)量保證工作不能等到編碼階段結(jié)束之后再示意圖關(guān)于階段評審作用

43示意圖關(guān)于階段評審作用43實(shí)行嚴(yán)格的產(chǎn)品控制在軟件開發(fā)過程中不應(yīng)隨意改變需求(改變一項(xiàng)需求往往要付出很高的代價),但不能禁止更改需求。當(dāng)必須修改時,為了保持軟件各配置成分的一致性,必須實(shí)行嚴(yán)格的產(chǎn)品控制(主要是實(shí)行基準(zhǔn)配置管理)。一切有關(guān)修改軟件的建議(特別是涉及到對基準(zhǔn)配置的修改建議)都必須按照嚴(yán)格的規(guī)程進(jìn)行評審,獲準(zhǔn)后才能實(shí)施修改)。絕對不能誰想修改就隨意進(jìn)行修改的行為。44實(shí)行嚴(yán)格的產(chǎn)品控制在軟件開發(fā)過程中不應(yīng)隨意改變需求(改變一項(xiàng)采用現(xiàn)代程序設(shè)計(jì)技術(shù)以前的結(jié)構(gòu)化程序設(shè)計(jì)技術(shù),如今的面向?qū)ο蟪绦蛟O(shè)計(jì)技術(shù)都被實(shí)踐證明是各個不同歷史階段的優(yōu)秀程序設(shè)計(jì)技術(shù)和方法。采用先進(jìn)的技術(shù)既可以提高軟件開發(fā)的效率,又可以提高軟件維護(hù)的效率。45采用現(xiàn)代程序設(shè)計(jì)技術(shù)以前的結(jié)構(gòu)化程序設(shè)計(jì)技術(shù),如今的面向?qū)ο蠼Y(jié)果應(yīng)能清楚地審查軟件產(chǎn)品是看不見、摸不著的邏輯產(chǎn)品,軟件開發(fā)人員的工作進(jìn)展情況可見性差。為了提高開發(fā)過程的可見性,應(yīng)根據(jù)軟件開發(fā)項(xiàng)目中的目標(biāo)完成期限,規(guī)定開發(fā)組織的責(zé)任和產(chǎn)品標(biāo)準(zhǔn),使得到的結(jié)果能夠清楚的審查。46結(jié)果應(yīng)能清楚地審查軟件產(chǎn)品是看不見、摸不著的邏輯產(chǎn)品,軟件開開發(fā)小組人員少而精開發(fā)小組成員的素質(zhì)應(yīng)該高,人員不宜過多。人員素質(zhì)和數(shù)量是影響產(chǎn)品質(zhì)量和開發(fā)效率的重要因素。素質(zhì)高的人開發(fā)效率比低的人高幾倍甚至幾十倍,而錯誤則明顯得少;人數(shù)增加,管理難度也增加。47開發(fā)小組人員少而精開發(fā)小組成員的素質(zhì)應(yīng)該高,人員不宜過多。人承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性要積極主動地采納新的軟件技術(shù),要不斷總結(jié)經(jīng)驗(yàn);不能自以為是,固步自封,唯我獨(dú)好。大千世界,錯綜復(fù)雜,只有不斷學(xué)習(xí),才能不斷進(jìn)取,不斷進(jìn)步。48承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性要積極主動地采納新的軟件技術(shù)軟件工程應(yīng)用范圍個人程序、中小型或一般程序同開發(fā)人員之間的關(guān)聯(lián)較小,應(yīng)用SE方法收效甚微。大型程序要由若干個程序員小組承擔(dān)開發(fā),相互關(guān)系極其復(fù)雜,因此,必須自始至終堅(jiān)持SE方法。49軟件工程應(yīng)用范圍個人程序、中小型或一般程序同開發(fā)人員之間的關(guān)應(yīng)用程序分類分類程序規(guī)模模塊數(shù)開發(fā)時間開發(fā)人數(shù)極小500行以下10~201~4周1人小1K~2K行25~501~6月1人中5K~50K行250~10001~2年2~5人大50K~100K行1000以上2~3年5~20人甚大1M行4~5年100~1000人極大1M~10M行5~10年2000~500050應(yīng)用程序分類分類程序規(guī)模傳統(tǒng)軟件工程模式70年代,計(jì)算機(jī)技術(shù)水平不高,開發(fā)工具少而且性能差。對于大型復(fù)雜問題的求解方法有很大的局限性影響。軟件工程采用的方法:把軟件生存周期劃分成若干個階段,每個階段的任務(wù)相對獨(dú)立,而且比較簡單,便于不同人員分工協(xié)作,從而降低整個軟件開發(fā)工程的困難程度。在實(shí)現(xiàn)每個階段的任務(wù)時,采用的是系統(tǒng)化的技術(shù)方法——結(jié)構(gòu)化分析和結(jié)構(gòu)化設(shè)計(jì)技術(shù)。傳統(tǒng)軟件工程模式的缺點(diǎn):強(qiáng)調(diào)了分階段實(shí)施模塊化、結(jié)構(gòu)化程序設(shè)計(jì)技術(shù)和方法,而忽視了人在軟件開發(fā)過程中的地位和作用。51傳統(tǒng)軟件工程模式70年代,計(jì)算機(jī)技術(shù)水平不高,開發(fā)工具少而現(xiàn)代軟件工程模式現(xiàn)代軟件工程是在傳統(tǒng)軟件工程模式的基礎(chǔ)上,為了強(qiáng)調(diào)人在系統(tǒng)開發(fā)中的作用,同時為了適應(yīng)軟件新技術(shù)的發(fā)展趨勢而提出的。其基本要點(diǎn)是:以人為主,充分利用軟件開發(fā)方法及軟件開發(fā)工具;開發(fā)人員的組織管理對軟件開發(fā)成功與否至關(guān)重要;基于軟件組件的軟件開發(fā)技術(shù)。各種功能的可重用軟件組件不斷問世。這使得在軟件開發(fā)過程中編程工作量日趨減少,取而代之的是在設(shè)計(jì)好系統(tǒng)體系結(jié)構(gòu)后,利用軟件組件構(gòu)造或重構(gòu)軟件系統(tǒng)。由于軟件組件是標(biāo)準(zhǔn)化設(shè)計(jì)、成品化生產(chǎn)的,極易構(gòu)造使用,從而大大簡化了設(shè)計(jì)、編程、測試各個環(huán)節(jié)的工作量,提高了工作效率和生產(chǎn)效率。由于在軟件開發(fā)過程中最大限度地采用軟件組件,使得軟件開發(fā)過程變?yōu)橄到y(tǒng)分析、系統(tǒng)構(gòu)造、系統(tǒng)測試的集成過程。52現(xiàn)代軟件工程模式現(xiàn)代軟件工程是在傳統(tǒng)軟件工程模式的基礎(chǔ)上,為階段的劃分及主要任務(wù)系統(tǒng)分析系統(tǒng)設(shè)計(jì)系統(tǒng)測試軟件組件系統(tǒng)開發(fā)人員的組織管理53階段的劃分及主要任務(wù)系統(tǒng)分析53系統(tǒng)分析系統(tǒng)分析從系統(tǒng)需求入手,從用戶觀點(diǎn)出發(fā)建立系統(tǒng)用戶模型。用戶模型從概念上全方位表達(dá)系統(tǒng)需求及系統(tǒng)與用戶的相互關(guān)系。系統(tǒng)分析在用戶模型的基礎(chǔ)上,建立適應(yīng)性強(qiáng)的獨(dú)立于系統(tǒng)實(shí)現(xiàn)環(huán)境的邏輯結(jié)構(gòu)。分析階段獨(dú)立于系統(tǒng)實(shí)現(xiàn)環(huán)境,可以保證建立起來的系統(tǒng)結(jié)構(gòu)具有相對的穩(wěn)定性,便于系統(tǒng)維護(hù)、移植或擴(kuò)充。在系統(tǒng)分析階段,系統(tǒng)的邏輯結(jié)構(gòu)應(yīng)從以下三方面全面反映系統(tǒng)的功能與性能:(1)信息。完整描述系統(tǒng)中所處理的全部信息;(2)行為。完全描述系統(tǒng)狀態(tài)變化所需處理或功能;(3)表示。詳細(xì)描述系統(tǒng)的對外接口與界面。

54系統(tǒng)分析系統(tǒng)分析從系統(tǒng)需求入手,從用戶觀點(diǎn)出發(fā)建立系統(tǒng)用戶模系統(tǒng)設(shè)計(jì)在系統(tǒng)設(shè)計(jì)階段,首先考慮具體的實(shí)現(xiàn)環(huán)境。在設(shè)計(jì)時,可能會對系統(tǒng)結(jié)構(gòu)作一些調(diào)整,但為了保持系統(tǒng)結(jié)構(gòu)的穩(wěn)定性,應(yīng)盡可能避免由于實(shí)現(xiàn)環(huán)境的特定要求而改變系統(tǒng)結(jié)構(gòu)。設(shè)計(jì)、構(gòu)造系統(tǒng)的軟件組件。設(shè)計(jì)軟件組件的主要內(nèi)容是定義組件的結(jié)構(gòu)、功能和外部接口,以及組件之間的相互關(guān)系和通信方式。對于復(fù)雜的大系統(tǒng),還可以根據(jù)組件之間關(guān)聯(lián)的緊密程度,將關(guān)聯(lián)密切的多個組件形成一個子系統(tǒng),子系統(tǒng)之間具有松散的耦合。在系統(tǒng)實(shí)現(xiàn)階段,對于需要開發(fā)的軟件組件,選擇采用某種合適的程序設(shè)計(jì)語言編寫相應(yīng)的源代碼程序,完成系統(tǒng)實(shí)現(xiàn)工作。55系統(tǒng)設(shè)計(jì)在系統(tǒng)設(shè)計(jì)階段,首先考慮具體的實(shí)現(xiàn)環(huán)境。在設(shè)計(jì)時,可系統(tǒng)測試系統(tǒng)測試包括單元測試、集成測試和系統(tǒng)測試。就功能而言與傳統(tǒng)軟件工程模式中系統(tǒng)測試的功能相同。56系統(tǒng)測試系統(tǒng)測試包括單元測試、集成測試和系統(tǒng)測試。就功能而言軟件組件在現(xiàn)代軟件工程的開發(fā)過程中,軟件組件只是一個輔助或支撐系統(tǒng)構(gòu)造的一個過程。軟件組件開發(fā)主要是開發(fā)與維護(hù)系統(tǒng)構(gòu)造過程中用到的組件。將軟件組件作為一個單獨(dú)的過程,目的是將組件作為構(gòu)造軟件的“零部件”。隨著軟件技術(shù)的不斷發(fā)展及軟件工程的不斷完善,軟件組件將會作為一種獨(dú)立的軟件產(chǎn)品出現(xiàn)在市場上,供應(yīng)用開發(fā)人員在構(gòu)造應(yīng)用系統(tǒng)時選用。57軟件組件在現(xiàn)代軟件工程的開發(fā)過程中,軟件組件只是一個輔助或支系統(tǒng)開發(fā)人員的組織管理現(xiàn)代軟件工程不僅包括軟件開發(fā)方法、工具和過程,更強(qiáng)調(diào)人在開發(fā)過程中的作用。一個復(fù)雜的系統(tǒng)開發(fā)過程,涉及到眾多的以人為主的各種開發(fā)活動,通過這些活動的有機(jī)配合與協(xié)調(diào)才能保證系統(tǒng)開發(fā)的成功。因此,系統(tǒng)開發(fā)人員的組織管理是現(xiàn)代軟件工程中的重要方面。組織管理方法有以下幾個要點(diǎn):①明確系統(tǒng)開發(fā)人員與用戶之間的責(zé)任與義務(wù);②明確各類開發(fā)人員的主要工作及責(zé)任;③制定或選擇工程開發(fā)規(guī)范。58系統(tǒng)開發(fā)人員的組織管理現(xiàn)代軟件工程不僅包括軟件開發(fā)方法、工具三、軟件生命周期軟件生存周期指從軟件的需求分析、設(shè)計(jì)、編程、測試、交付用戶使用到版本升級、或被被自然淘汰的過程。軟件工程的應(yīng)用模式也稱為軟件生存周期模式。通常也稱其為“瀑布模型”(B.W.Bohem提出的該模型)。59三、軟件生命周期軟件生存周期指從軟件的需求分析、設(shè)計(jì)、編程、⒈軟件生命周期各個階段任務(wù)需求分析、定義系統(tǒng)總體設(shè)計(jì)系統(tǒng)編程系統(tǒng)測試系統(tǒng)維護(hù)60⒈軟件生命周期各個階段任務(wù)需求分析、定義60⑴需求分析、定義任務(wù)是:收集、分析、理解、確定用戶的要求;然后把用戶的要求精確、完整地描述表達(dá)出來。目的:要回答“要解決什么問題?”,既系統(tǒng)”做什么?“。分兩步驟:可行性研究:制定軟件開發(fā)計(jì)劃進(jìn)行需求分析階段結(jié)果,產(chǎn)生出:可行性報(bào)告、軟件計(jì)劃、需求說明書61⑴需求分析、定義任務(wù)是:收集、分析、理解、確定用戶的要求;然⑵系統(tǒng)總體設(shè)計(jì)任務(wù)是:設(shè)計(jì)軟件系統(tǒng)的模塊層次結(jié)構(gòu)模塊間邏輯關(guān)系、參數(shù)每個模塊的功能目的:要回答“如何解決該問題?”,既系統(tǒng)”怎樣做?“。分兩步驟:概要設(shè)計(jì):解決系統(tǒng)的模塊劃分、模塊的層次結(jié)構(gòu)及數(shù)據(jù)庫設(shè)計(jì)。詳細(xì)設(shè)計(jì):解決每個摸塊內(nèi)部算法和數(shù)據(jù)結(jié)構(gòu)。階段結(jié)果;產(chǎn)生出:系統(tǒng)設(shè)計(jì)說明書和模塊功能說明書。62⑵系統(tǒng)總體設(shè)計(jì)任務(wù)是:62⑶系統(tǒng)編程任務(wù)是:根據(jù)設(shè)計(jì)說明書中每個模塊的控制流程編出相應(yīng)的程序。階段結(jié)果:軟件系統(tǒng)的源程序。63⑶系統(tǒng)編程任務(wù)是:63⑷系統(tǒng)測試任務(wù)是:檢查、發(fā)現(xiàn)程序中的錯誤,提高軟件的可靠性?;卮穑骸霸撓到y(tǒng)是否能實(shí)現(xiàn)規(guī)定的操作?”。分三個階段:模塊測試測試每個模塊的程序是否有錯;組裝測試測試模塊之間的接口是否正確;確認(rèn)測試測試整個軟件系統(tǒng)是否滿足用戶功能、性能要求。測試三大基本技術(shù):邏輯覆蓋(白盒法)邊值分析(黑盒法)等價類劃分(黑盒法)階段結(jié)果:測試報(bào)告;說明測試數(shù)據(jù)的選擇,測試對象、測試結(jié)果是否符合預(yù)期結(jié)果等。64⑷系統(tǒng)測試任務(wù)是:檢查、發(fā)現(xiàn)程序中的錯誤,提高軟件的可靠性。⑸系統(tǒng)維護(hù)任務(wù)是:改正軟件系統(tǒng)在使用過程中發(fā)現(xiàn)的隱含錯誤,擴(kuò)充在使用過程中的新的功能要求;目的:維護(hù)軟件系統(tǒng)的正常運(yùn)行;階段結(jié)果:軟件系統(tǒng)的問題報(bào)告和軟件修改報(bào)告(記錄發(fā)現(xiàn)軟件錯誤的情況以及修改軟件的過程)。65⑸系統(tǒng)維護(hù)任務(wù)是:改正軟件系統(tǒng)在使用過程中發(fā)現(xiàn)的隱含錯誤,擴(kuò)⒉瀑布模型

需求分析7%系統(tǒng)設(shè)計(jì)6%軟件編程7%軟件測試13%軟件維護(hù)67%用戶要求分析報(bào)告系統(tǒng)設(shè)計(jì)報(bào)告源程序測試報(bào)告更改要求UAMATMMPUTPUAMPA系統(tǒng)分析員M項(xiàng)目管理員P程序員T高級程序員U用戶66⒉瀑布模型需求分析7%系統(tǒng)設(shè)計(jì)6%軟件編程7%軟件測試13瀑布模型的特點(diǎn)瀑布模型具有順序性和依賴性,即后一階段的工作必須在前一階段的工作完成后才能開始。把邏輯設(shè)計(jì)與物理設(shè)計(jì)清楚地劃分開,是瀑布模型的重要指導(dǎo)思想。瀑布模型強(qiáng)調(diào)的是優(yōu)質(zhì),即每一步都循序漸進(jìn),及早消除隱患,從而保證軟件質(zhì)量。它的致命缺點(diǎn)在于只有做出精確的需求分析,才能取得預(yù)期的結(jié)果。由于各種客觀、主觀的原因,需求分析往往不很精確,常常給日后的開發(fā)帶來隱患。67瀑布模型的特點(diǎn)瀑布模型具有順序性和依賴性,即后一階段的工作必⒊原型模型——樣品模型原型模型的主要思想:先借用已有系統(tǒng)作為原型模型,通過“樣品”不斷改進(jìn),使得最后的產(chǎn)品就是用戶所需要的。原形模型的特點(diǎn):(1)開發(fā)人員和用戶在“原型”上達(dá)成一致。這樣一來,可以減少設(shè)計(jì)中的錯誤和開發(fā)中的風(fēng)險(xiǎn),也減少了對用戶培訓(xùn)的時間,而提高了系統(tǒng)的實(shí)用、正確性以及用戶的滿意程度。(2)縮短了開發(fā)周期,加快了工程進(jìn)度。(3)降低成本。原型模型的缺點(diǎn):當(dāng)告訴用戶,還必須重新生產(chǎn)該產(chǎn)品時,用戶是很難接受的。這往往給工程繼續(xù)開展帶來不利因素。

68⒊原型模型——樣品模型原型模型的主要思想:68快速原型模型

分析原型樣品模型設(shè)計(jì)編程測試使用修改與改進(jìn)在系統(tǒng)分析與設(shè)計(jì)中,采用交互式,反復(fù)修改與不斷改進(jìn)的方式進(jìn)行。還有的把原型模式嵌套在瀑布模型中運(yùn)用。69快速原型模型分析原型設(shè)計(jì)編程測試使用修改在系統(tǒng)分析與還有的⒋螺旋模型螺旋模型將工程劃分為4個主要活動:制定計(jì)劃、風(fēng)險(xiǎn)分析、實(shí)現(xiàn)工程和用戶評價。4個活動螺旋式地重復(fù)執(zhí)行,直到最終得到用戶認(rèn)可的產(chǎn)品。制定計(jì)劃:確定軟件目標(biāo),選定實(shí)施方案,弄清項(xiàng)目開發(fā)限制條件。風(fēng)險(xiǎn)分析:分析可選方案,分析識別風(fēng)險(xiǎn),研究解決化解風(fēng)險(xiǎn)的辦法。實(shí)現(xiàn)工程:實(shí)施軟件產(chǎn)品的開發(fā)。用戶評價:對當(dāng)前工作結(jié)果進(jìn)行評價,提出改進(jìn)產(chǎn)品的建議。螺旋模型的缺點(diǎn):很難讓用戶確信這種演化方法的結(jié)果是可以控制的.70⒋螺旋模型螺旋模型將工程劃分為4個主要活動:制定計(jì)劃、風(fēng)險(xiǎn)分⒌其他模型智能模型也稱基于知識的軟件開發(fā)模型,它與專家系統(tǒng)結(jié)合在一起。該模型應(yīng)用基于規(guī)則的系統(tǒng),采用歸納和推理機(jī)制,幫助軟件人員完成開發(fā)工作,并使維護(hù)在系統(tǒng)規(guī)格說明一級進(jìn)行。該模型在實(shí)施過程中要建立知識庫,將模型本身、軟件工程知識與特定領(lǐng)域的知識分別存人數(shù)據(jù)庫。以軟件工程知識為基礎(chǔ)的生成規(guī)則構(gòu)成的專家系統(tǒng)與含應(yīng)用領(lǐng)域知識規(guī)則的其他專家系統(tǒng)相結(jié)合,構(gòu)成這一應(yīng)用領(lǐng)域軟件的開發(fā)系統(tǒng)。面向?qū)ο笊嬷芷谀P推渲鲗?dǎo)思想是:在整個軟件開發(fā)過程中將面向?qū)ο蠹夹g(shù)貫穿于整個生存周期。當(dāng)然,還要結(jié)合傳統(tǒng)開發(fā)模式中好的、已被無數(shù)成功開發(fā)活動證明是可行的經(jīng)驗(yàn)和技術(shù)。71⒌其他模型智能模型也稱基于知識的軟件開發(fā)模型,它與專家系四、軟件工程管理軟件工程項(xiàng)目管理的任務(wù)軟件人員組織與管理軟件配置管理軟件知識產(chǎn)權(quán)保護(hù)72四、軟件工程管理軟件工程項(xiàng)目管理的任務(wù)72⒈軟件工程項(xiàng)目管理的任務(wù)軟件工程項(xiàng)目管理所涉及的范圍覆蓋了整個軟件工程過程。它管理的任務(wù)是:根據(jù)項(xiàng)目合同書的要求,制定項(xiàng)目計(jì)劃和工程進(jìn)度安排、監(jiān)督和檢查項(xiàng)目實(shí)施過程、保證工程滿足要求的質(zhì)量標(biāo)準(zhǔn)、分析確定并排除風(fēng)險(xiǎn)、在規(guī)定的期限和預(yù)算成本內(nèi)完成項(xiàng)目。包括:

項(xiàng)目計(jì)劃和進(jìn)度安排

項(xiàng)目追蹤和質(zhì)量保證成本估算風(fēng)險(xiǎn)分析73⒈軟件工程項(xiàng)目管理的任務(wù)軟件工程項(xiàng)目管理所涉及的范圍覆蓋了整①項(xiàng)目計(jì)劃和進(jìn)度安排項(xiàng)目計(jì)劃要列出軟件開發(fā)要做的主要工作和任務(wù)清單,要回答“軟件工程項(xiàng)目做什么”。在工作和任務(wù)清單中要清楚地描述出:項(xiàng)目劃分的各個實(shí)施階段每個階段的工作重點(diǎn)和任務(wù)是什么完成本階段工作和任務(wù)的人力、資源需求,時間期限階段工作和任務(wù)的成果形式項(xiàng)目實(shí)施過程中對風(fēng)險(xiǎn)、疑難、其他不可預(yù)見因素等的處理機(jī)制各任務(wù)組及開發(fā)人員之間的組織、協(xié)調(diào)關(guān)系等。74①項(xiàng)目計(jì)劃和進(jìn)度安排項(xiàng)目計(jì)劃要列出軟件開發(fā)要做的主要工作和任進(jìn)度安排在制定項(xiàng)目進(jìn)度安排時,主要依據(jù)是合同書和項(xiàng)目計(jì)劃。通常的做法是把復(fù)雜的整體項(xiàng)目分解成許多可以準(zhǔn)確描述、度量、可獨(dú)立操作的相對簡單的任務(wù),然后安排這些任務(wù)的執(zhí)行順序,確定每個任務(wù)的完成期限、開始時間和結(jié)束時間。開始需要考慮的主要問題是:項(xiàng)目可以支配的人力及資源項(xiàng)目的關(guān)鍵路徑生存周期各個階段工作量的劃分工程進(jìn)展如何度量各個階段任務(wù)完成標(biāo)志如何自然過渡到下一階段的任務(wù)等。75進(jìn)度安排在制定項(xiàng)目進(jìn)度安排時,主要依據(jù)是合同書和項(xiàng)目計(jì)劃。通②項(xiàng)目追蹤和質(zhì)量保證項(xiàng)目追蹤實(shí)施由項(xiàng)目管理人員負(fù)責(zé)。他們必須按進(jìn)度安排表追蹤檢查每一個任務(wù)。如果任務(wù)實(shí)際完成日期滯后于進(jìn)度安排,則管理人員可以行使職權(quán)范圍內(nèi)的權(quán)力采取各種補(bǔ)救措施以減少進(jìn)度誤期所造成的影響。包括對資源重新定向,對任務(wù)重新安排,甚至可以修改交付日期以調(diào)整已經(jīng)暴露的問題。質(zhì)量保證在軟件生存周期中是至關(guān)重要的。人們在管理項(xiàng)目時往往只強(qiáng)調(diào)必須按期完成任務(wù),必須遵循進(jìn)度計(jì)劃,必須把成本控制在預(yù)算范圍內(nèi),卻忽視了在生存周期各個階段工作和任務(wù)應(yīng)滿足規(guī)定的質(zhì)量標(biāo)準(zhǔn)。76②項(xiàng)目追蹤和質(zhì)量保證項(xiàng)目追蹤實(shí)施由項(xiàng)目管理人員負(fù)責(zé)。他們必須軟件質(zhì)量主要因素包括正確性在預(yù)定的系統(tǒng)環(huán)境下能正確地完成預(yù)期的功能;健壯性

在預(yù)定意外環(huán)境下系統(tǒng)能適當(dāng)?shù)亟o予預(yù)期的響應(yīng);完整性對未經(jīng)授權(quán)的操作,系統(tǒng)能夠進(jìn)行控制;可用性

系統(tǒng)在完成預(yù)定任務(wù)的功能時能夠圓滿地實(shí)現(xiàn);靈活性

系統(tǒng)應(yīng)能滿足硬件環(huán)境升級和部分功能擴(kuò)充需求;可理解性

用戶和維護(hù)人員應(yīng)非常容易的理解和使用系統(tǒng);可維護(hù)性用戶按文檔資料應(yīng)能排除常見系統(tǒng)故障,保持系統(tǒng)正常運(yùn)行;可移植性

在廠家協(xié)助下,系統(tǒng)可以移植到其他硬件環(huán)境且費(fèi)用可以接受;可重用性

系統(tǒng)全部或部分代碼可以在其他應(yīng)用系統(tǒng)中被使用;可測試性

系統(tǒng)容易測試。77軟件質(zhì)量主要因素包括正確性在預(yù)定的系統(tǒng)環(huán)境下能正確地完成預(yù)保證軟件質(zhì)量的措施為了保證軟件質(zhì)量,在軟件開發(fā)過程中應(yīng)采取下列措施:(1)審查(2)復(fù)查和管理復(fù)查(3)測試78保證軟件質(zhì)量的措施為了保證軟件質(zhì)量,在軟件開發(fā)過程中應(yīng)采取下審查在軟件生存期各個階段結(jié)束之前,都要對該階段產(chǎn)生的結(jié)果和軟件配置文檔進(jìn)行嚴(yán)格技術(shù)審查。審查過程包括:① 計(jì)劃:組織審查組、分發(fā)材料等;② 概況介紹:對大的項(xiàng)目,讓主程序員介紹概況;③ 準(zhǔn)備:評審員閱讀材料,取得項(xiàng)目有關(guān)知識;④ 評審會:目的是發(fā)現(xiàn)和記錄錯誤;⑤ 返工:開發(fā)者修改已經(jīng)發(fā)現(xiàn)的問題;⑥ 復(fù)查:檢查返工是否真正解決了問題。79審查在軟件生存期各個階段結(jié)束之前,都要對該階段產(chǎn)生的結(jié)果和軟復(fù)查和管理復(fù)查復(fù)查是檢查已有的材料,以斷定本階段的工作是否能夠開始或繼續(xù)。每個階段開始時的復(fù)查是為了肯定前一個階段結(jié)束時確實(shí)進(jìn)行了認(rèn)真的復(fù)查,已經(jīng)具備了開始當(dāng)前階段工作所必須的材料。管理復(fù)查是指:向開發(fā)組織或使用部門的管理人員提供有關(guān)項(xiàng)目的總體狀況以及進(jìn)度等方面的情況,以便他們從管理的角度對開發(fā)工作進(jìn)行審查。80復(fù)查和管理復(fù)查復(fù)查是檢查已有的材料,以斷定本階段的工作是否能測試測試是用測試用例執(zhí)行系統(tǒng),以檢查測試結(jié)果是否和預(yù)期結(jié)果一致。在測試過程中將產(chǎn)生以下文檔:①測試計(jì)劃:確定測試范圍、方法、測試用例和所需資源等;②測試過程:詳細(xì)描述與每個測試方案有關(guān)的測試步驟和數(shù)據(jù)(包括測試預(yù)期結(jié)果);③測試結(jié)果:把每次測試運(yùn)行的結(jié)果歸入文檔,如果運(yùn)行出錯,則應(yīng)產(chǎn)生問題報(bào)告,并且要通過調(diào)試解決所發(fā)現(xiàn)的問題。81測試測試是用測試用例執(zhí)行系統(tǒng),以檢查測試結(jié)果是否和預(yù)期結(jié)果一③成本估算成本估算和成本管理是軟件項(xiàng)目管理的核心任務(wù)之一。在制定項(xiàng)目計(jì)劃時,就必須對項(xiàng)目需要的人力及其他資源、項(xiàng)目持續(xù)時間和項(xiàng)目成本做出估算。如果新項(xiàng)目和以往的項(xiàng)目類似,估算可以參考以前的成本費(fèi)用?,F(xiàn)在已有一些用于軟件成本估算的技術(shù)可供借鑒。這些估算技術(shù)各有其優(yōu)缺點(diǎn),但以下幾方面是共同的:事先建立軟件的工作范圍;以軟件度量(經(jīng)驗(yàn)度量、相似工程類比的度量)為基礎(chǔ)做出估算把項(xiàng)目分解為可單獨(dú)進(jìn)行估算的小塊82③成本估算成本估算和成本管理是軟件項(xiàng)目管理的核心任務(wù)之一。在成本估算方法就方法論而言,有兩種基本的成本估算方法:自頂向下和自底向上。自頂向下法是對整個工程項(xiàng)目的總開發(fā)時間和總工作量做出估算,然后將它們按階段、步驟和任務(wù)進(jìn)行分配。自底向上法則正好相反,先分別估算各個任務(wù)所需要的工作量和開發(fā)時間,再相加,從而得到總的工作量和總的開發(fā)時間。這兩種方法都要求采用某種方法做出估算。有許多估算方法可以利用,大致劃分為三類:專家估算法、類推估算法、算式估算法。83成本估算方法就方法論而言,有兩種基本的成本估算方法:自頂向下成本估算方法簡介專家估算法

依靠一個或多個專家對項(xiàng)目做出估算,其精度主要取決于專家對估算項(xiàng)目的定性參數(shù)的了解和他們的經(jīng)驗(yàn)。類推估算法

在自頂向下法中,類推估算法將估算項(xiàng)目的總體參數(shù)與類似項(xiàng)目進(jìn)行直接比較得到結(jié)果;在自底向上法中,類推是在兩個具有相似條件的工作單元之間進(jìn)行。算式估算法前兩種估算法的缺點(diǎn)在于:它們依靠的是帶有主觀猜測和盲目性的估算方法。算式估算法則是企圖避免主觀因素影響的一種方法。算式估算法有兩種基本類型:由理論導(dǎo)出的算法和由經(jīng)驗(yàn)得出的算法。84成本估算方法簡介專家估算法依靠一個或多個專家對項(xiàng)目做出估④風(fēng)險(xiǎn)分析在開發(fā)新的軟件系統(tǒng)過程中,由于存在許多不確定因素,軟件開發(fā)失敗的風(fēng)險(xiǎn)是客觀存在的。因此,風(fēng)險(xiǎn)分析對于軟件項(xiàng)目管理是決定性的。風(fēng)險(xiǎn)分析實(shí)際上就是貫穿在軟件工程過程中的一系列風(fēng)險(xiǎn)管理步驟,其中包括:風(fēng)險(xiǎn)識別、風(fēng)險(xiǎn)估計(jì)、風(fēng)險(xiǎn)管理策略、風(fēng)險(xiǎn)解決和風(fēng)險(xiǎn)監(jiān)督等。85④風(fēng)險(xiǎn)分析在開發(fā)新的軟件系統(tǒng)過程中,由于存在許多不確定因素,主要風(fēng)險(xiǎn)因素①產(chǎn)品大小。實(shí)踐經(jīng)驗(yàn)表明項(xiàng)目風(fēng)險(xiǎn)和產(chǎn)品的大小成正比。公認(rèn)產(chǎn)品大小度量單位是以代碼行或功能點(diǎn)計(jì)。②技術(shù)相關(guān)。未曾使用過的新技術(shù)都存在風(fēng)險(xiǎn)。包括未使用過的新型硬件、支持軟件,缺乏標(biāo)準(zhǔn)與規(guī)范的非傳統(tǒng)的開發(fā)方法等。技術(shù)過時也是風(fēng)險(xiǎn)。技術(shù)風(fēng)險(xiǎn)一般難于改正。③開發(fā)環(huán)境。適用的開發(fā)工具不足、不可靠、使用不方便等因素,都會降低開發(fā)效率。④組織規(guī)模和人員經(jīng)驗(yàn)。⑤客戶因素。表現(xiàn)在客戶需求經(jīng)常矛盾,不了解客戶的特殊需要,客戶不了解項(xiàng)目中采用的新技術(shù),且雙方又難于溝通等。86主要風(fēng)險(xiǎn)因素①產(chǎn)品大小。實(shí)踐經(jīng)驗(yàn)表明項(xiàng)目風(fēng)險(xiǎn)和產(chǎn)品的大小成⒉軟件人員組織與管理人員是軟件工程項(xiàng)目最重要、也是最為活躍的資源因素。如何組織得更加合理,如何管理得更加有效,從而最大限度地發(fā)揮這一重要的資源潛力,對于成功地完成軟件工程項(xiàng)目至關(guān)重要。項(xiàng)目組的組織結(jié)構(gòu)

程序設(shè)計(jì)小組的組織形式

軟件項(xiàng)目的管理

87⒉軟件人員組織與管理人員是軟件工程項(xiàng)目最重要、也是最為活躍的⑴項(xiàng)目組的組織結(jié)構(gòu)開發(fā)組織采用什么形式,要針對軟件項(xiàng)目的特點(diǎn)來決定,同時也與參加人員的素質(zhì)有關(guān)。建立項(xiàng)目組織時要考慮這樣一些原則:①項(xiàng)目責(zé)任制度。項(xiàng)目必須實(shí)行項(xiàng)目負(fù)責(zé)人責(zé)任制。項(xiàng)目責(zé)任人對項(xiàng)目的完成負(fù)全部責(zé)任。②人員少而精。項(xiàng)目組成員之間的交流和協(xié)作是項(xiàng)目成敗的關(guān)鍵。人員少,具有便于組織管理、合理分工、減少通信等優(yōu)點(diǎn);人員精,有利于互相激勵、發(fā)揮各自的特長優(yōu)勢,提高工作效率。88⑴項(xiàng)目組的組織結(jié)構(gòu)開發(fā)組織采用什么形式,要針對軟件項(xiàng)目的特點(diǎn)選擇組織結(jié)構(gòu)的模式(1)按課題劃分按課題劃分小組。小組成員自始至終參加所承擔(dān)課題的各項(xiàng)任務(wù)。(2)按職能劃分

按任務(wù)的工作階段劃分成若干個專業(yè)小組。例如,分別建立計(jì)劃組、需求分析組、設(shè)計(jì)組、實(shí)現(xiàn)組、測試組、質(zhì)量保證組、維護(hù)組等。要開發(fā)的軟件產(chǎn)品在每個專業(yè)小組完成階段加工后,沿工序流水線向下傳遞。這種流水線模式便于小組人員熟悉本組的工作,進(jìn)而變成這方面的專家。但也有小組之間的通信接口增多,通信路徑延長等問題。(3)矩陣形模式這種模式實(shí)際上是以上兩種模式的結(jié)合。既設(shè)立項(xiàng)目經(jīng)理負(fù)責(zé)項(xiàng)目的管理,又成立一些專門組,每個成員參加其中一個組的實(shí)際工作。矩陣形結(jié)構(gòu)組織的優(yōu)點(diǎn)是:參加專門組的成員可在組內(nèi)交流其在各項(xiàng)目中取得的經(jīng)驗(yàn),這更有利于發(fā)揮專業(yè)人員的作用。而且各個項(xiàng)目有專人負(fù)責(zé),有利于項(xiàng)目的完成。89選擇組織結(jié)構(gòu)的模式(1)按課題劃分按課題劃分小組。小組成⑵程序設(shè)計(jì)小組的組織形式一般情況下,程序設(shè)計(jì)人員是在一定程度上獨(dú)立自主地完成各自的任務(wù)。但這并不意味著互相之間沒有聯(lián)系。事實(shí)上,人員之間聯(lián)系得多少和聯(lián)系方式與生產(chǎn)效率直接相關(guān)。程序設(shè)計(jì)小組內(nèi)人數(shù)少,如2~3人,則人員之間的聯(lián)系比較簡單。但隨著人數(shù)的增加,相互之間的聯(lián)系是按非線性關(guān)系變得復(fù)雜起來。因此,小組內(nèi)部人員的組織形式對生產(chǎn)率也有很大的影響。90⑵程序設(shè)計(jì)小組的組織形式一般情況下,程序設(shè)計(jì)人員是在一定程度①主程序員組組由主程序員、程序員和后援工程師為核心組成。主程序員是經(jīng)驗(yàn)豐富能力強(qiáng)的高級程序員,負(fù)責(zé)小組全部技術(shù)活動的計(jì)劃、協(xié)調(diào)與審查工作,還負(fù)責(zé)設(shè)計(jì)和實(shí)現(xiàn)項(xiàng)目中的關(guān)鍵部分。后援工程師協(xié)助和支持主程序員的工作,為主程序員提供咨詢,也做部分分析、設(shè)計(jì)和實(shí)現(xiàn)的工作,并在必要時代替主程序員工作,以便使項(xiàng)目能繼續(xù)進(jìn)行。程序員負(fù)責(zé)項(xiàng)目的具體分析與開發(fā),以及文檔資料的編寫工作。根據(jù)系統(tǒng)規(guī)模大小及難易程度,小組還可以聘請一些專家、輔助人員、軟件資料員協(xié)助工作。主程序員組這種集中領(lǐng)導(dǎo)的組織形式突出了主程序員的領(lǐng)導(dǎo)作用,簡化了人際通信。這種組織形式能否取得好的效果,很大程度上取決于主程序員的技術(shù)水平和管理才能。美國的軟件產(chǎn)業(yè)中大多采用主程序員組的組織形式。91①主程序員組組由主程序員、程序員和后援工程師為核心組成。91②民主小組小組由經(jīng)驗(yàn)豐富的技術(shù)人員組成。項(xiàng)目有關(guān)的所有重大決策都由全體成員集體討論、確定解決。這種組織形式強(qiáng)調(diào)發(fā)揮每個成員的積極性,要求每個成員充分發(fā)揮主動精神和協(xié)作精神。通過充分討論,也是在互相學(xué)習(xí),因而在組內(nèi)形成一個良好合作的工作氣氛。但有時也會因此削弱個人的責(zé)任心和必要的權(quán)威作用。有人認(rèn)為這種組織形式適合于研制時間長、開發(fā)難度大的項(xiàng)目。日本軟件產(chǎn)業(yè)中大多采用這種組織形式,取得較好的效果。這種組織形式在強(qiáng)調(diào)發(fā)揮每個成員的積極性的同時,也創(chuàng)造了一個尊重每個成員的良好工作環(huán)境。由于小組成員在工作上能夠很好地配合,因而做到了較長時間穩(wěn)定的人員合作關(guān)系。這樣的小組形式避免了美國因軟件人員頻繁流動對工作造成的嚴(yán)重干擾。92②民主小組小組由經(jīng)驗(yàn)豐富的技術(shù)人員組成。項(xiàng)目有關(guān)的所有重大決③層次小組小組內(nèi)人員分為3級:組長、高級程序員和程序員。組長負(fù)責(zé)全組工作,包括任務(wù)分配、技術(shù)評審和復(fù)查、掌握工作量和參加技術(shù)活動。組長直接領(lǐng)導(dǎo)2至3名高級程序員。高級程序員通過基層小組,管理若干個程序員。這種組織結(jié)構(gòu)只允許必要的人際通信。它比較適合項(xiàng)目本身就是層次結(jié)構(gòu)狀的課題以及大型軟件項(xiàng)目的開發(fā)。93③層次小組小組內(nèi)人員分為3級:組長、高級程序員和程序員。93⑶軟件項(xiàng)目的管理

軟件項(xiàng)目管理包括項(xiàng)目指導(dǎo)和項(xiàng)目檢驗(yàn)。指導(dǎo)的目的是在軟件項(xiàng)目的實(shí)施過程中,動員和促進(jìn)工作人員積極完成所分配的任務(wù)。檢驗(yàn)是軟件管理的最后一個方面。它是對照計(jì)劃檢查執(zhí)行情況的過程,同時也是對照軟件工程標(biāo)準(zhǔn)檢查實(shí)施情況的過程。在發(fā)現(xiàn)項(xiàng)目的實(shí)施與計(jì)劃或標(biāo)準(zhǔn)有較大的偏離時,應(yīng)采取措施加以解決。管理內(nèi)容包括:指導(dǎo)工作的要點(diǎn)檢驗(yàn)管理的要點(diǎn)檢驗(yàn)管理的工作范圍94⑶軟件項(xiàng)目的管理軟件項(xiàng)目管理包括項(xiàng)目指導(dǎo)和項(xiàng)目檢驗(yàn)。94指導(dǎo)工作的要點(diǎn)①鼓勵。恰當(dāng)而且及時地鼓勵是非常重要的。要建立健全競爭和激勵機(jī)制,它可使人們充滿信心,勇于繼續(xù)克服困難,愿意努力進(jìn)一步提高工作效率,迎接新任務(wù)的挑戰(zhàn)。②引導(dǎo)。通常,人們愿意追隨那些能夠體諒個人要求或?qū)嶋H困難的領(lǐng)導(dǎo)。高明的領(lǐng)導(dǎo)人應(yīng)能體察到這些,并能巧妙地把個人的要求和目標(biāo)與項(xiàng)目工作的整體目標(biāo)結(jié)合起來,至少應(yīng)能做到在一定程度上的協(xié)調(diào),或在一個工作周期內(nèi)一致。要制定相對優(yōu)惠的“留人”政策,穩(wěn)定骨干隊(duì)伍。從風(fēng)險(xiǎn)分析中可知,大幅度的人員調(diào)整是非常有害的,即使是人員的臨時觀念也會使項(xiàng)目付出無形的代價,因而蒙受無謂的損失。95指導(dǎo)工作的要點(diǎn)①鼓勵。恰當(dāng)而且及時地鼓勵是非常重要的。要建檢驗(yàn)管理的要點(diǎn)①重大偏離。在軟件項(xiàng)目實(shí)施過程中,必須注意:工作與計(jì)劃之間、任務(wù)與標(biāo)準(zhǔn)之間的重大偏離。遇到有這種情況時應(yīng)及時向管理部門報(bào)告并采取相應(yīng)的措施給予適當(dāng)?shù)奶幹谩"谶x定標(biāo)準(zhǔn)。檢驗(yàn)管理需要事先確定應(yīng)當(dāng)遵循的標(biāo)準(zhǔn),使得軟件項(xiàng)目的工作進(jìn)展可以用某些客觀、精確且有實(shí)際意義的標(biāo)準(zhǔn)加以衡量。③特殊情況。管理人員必須注意軟件項(xiàng)目實(shí)施的一些特殊情況,認(rèn)真分析其中的一些特殊問題,加以解決。96檢驗(yàn)管理的要點(diǎn)①重大偏離。在軟件項(xiàng)目實(shí)施過程中,必須注意:工檢驗(yàn)管理的工作范圍檢驗(yàn)管理可能涉及到以下幾個方面:①質(zhì)量管理。包括明確度量軟件質(zhì)量的因素和準(zhǔn)則,決定質(zhì)量管理的方法和工具,以及實(shí)施質(zhì)量管理的組織形式。②進(jìn)度管理。檢驗(yàn)進(jìn)度計(jì)劃執(zhí)行的情況。③成本管理。度量并控制軟件項(xiàng)目的開銷。④文檔管理。檢驗(yàn)文檔編寫是否符合要求。⑤配置管理。檢驗(yàn)、控制軟件配置項(xiàng)的變更。97檢驗(yàn)管理的工作范圍檢驗(yàn)管理可能涉及到以下幾個方面:97⒊軟件配置管理軟件配置管理是人們在軟件工程實(shí)踐過程中總結(jié)出的一套管理辦法和原則。軟件配置管理將伴隨整個軟件生存周期。軟件配置管理和基線配置管理的任務(wù)98⒊軟件配置管理軟件配置管理是人們在軟件工程實(shí)踐過程中總結(jié)出⑴軟件配置管理和基線什么是軟件配置項(xiàng)?一般認(rèn)為:軟件生存周期各個階段活動的產(chǎn)物經(jīng)審批后即可稱之為軟件配置項(xiàng)。軟件配置項(xiàng)包括:①與合同、過程、計(jì)劃和產(chǎn)品有關(guān)的文檔和資料;②源代碼、目標(biāo)代碼和可執(zhí)行代碼;③相關(guān)產(chǎn)品,包括軟件工具、庫內(nèi)的可重用軟件、外購軟件及顧客提供的軟件等。99⑴軟件配置管理和基線什么是軟件配置項(xiàng)?一般認(rèn)為:軟件生存周期基線什么是基線?第一次提出的軟件配置項(xiàng)就構(gòu)成基線配置項(xiàng)?;€分類列表如下:系統(tǒng)功能說明。系統(tǒng)模型,項(xiàng)目計(jì)劃,進(jìn)度安排;

軟件需求規(guī)格說明。包括:圖形分析模型、過程、原型、數(shù)學(xué)規(guī)格說明;設(shè)計(jì)規(guī)格說明。包括:數(shù)據(jù)設(shè)計(jì)、體系結(jié)構(gòu)設(shè)計(jì)、界面設(shè)計(jì)、對象的描述等;驗(yàn)收規(guī)格說明;測試規(guī)格說明。包括:測試計(jì)劃、測試用例、測試預(yù)期結(jié)果、測試記錄等;數(shù)據(jù)庫描述。包括:數(shù)據(jù)模式、記錄結(jié)構(gòu)、數(shù)據(jù)項(xiàng)描述;模塊規(guī)格說明。包括:模塊功能、模塊算法、模塊接口等描述;運(yùn)行系統(tǒng)。包括:模塊代碼、鏈接模塊、數(shù)據(jù)庫、支持及工具程序等;用戶文檔。包括:安裝說明、操作說明、用戶手冊等;培訓(xùn)計(jì)劃;維護(hù)文檔,包括:故障報(bào)告、維護(hù)要求、更改記錄等;項(xiàng)目采用的有關(guān)標(biāo)準(zhǔn)和規(guī)程。100基線什么是基線?第一次提出的軟件配置項(xiàng)就構(gòu)成基線配置項(xiàng)?;€⑵配置管理的任務(wù)①標(biāo)識軟件配置項(xiàng)②版本控制③變更管理④審計(jì)101⑵配置管理的任務(wù)101①標(biāo)識軟件配置項(xiàng)大型軟件工程項(xiàng)目開發(fā)過程中可能會產(chǎn)生許多技術(shù)文檔。隨著軟件系統(tǒng)的變更,有關(guān)文檔也將發(fā)生變化。因此,對軟件配置項(xiàng)的管理是一個動態(tài)管理的過程。為了便于管理,首先要便于檢索。而要檢索就必須對所有的配置項(xiàng)進(jìn)行標(biāo)識、命名。標(biāo)識軟件配置項(xiàng)是配置項(xiàng)管理的重要基礎(chǔ)工作。所有的軟件配置項(xiàng)均可以當(dāng)作對象來標(biāo)識。例如,基本對象可以是一段需求規(guī)格說明、一個模塊的源代碼清單、一組測試用例等。將這些正文單元命名后作為基本對象,再將基本對象按內(nèi)部邏輯進(jìn)行組合,就形成復(fù)合對象。復(fù)合對象表示的是一本設(shè)計(jì)規(guī)格說明書、一個完整的源程序清單。102①標(biāo)識軟件配置項(xiàng)大型軟件工程項(xiàng)目開發(fā)過程中可能會產(chǎn)生許多技②版本控制版本更新是軟件生存期中的自然現(xiàn)象。軟件系統(tǒng)每做一次修改,就應(yīng)該變更一次版本。不同版本反映的是不同時期、不同硬件環(huán)境、不同用戶需求的該軟件系統(tǒng)的特定功能。為了保持該軟件系統(tǒng)一脈相承的完整性,每一個軟件配置項(xiàng)修改后的以前版本都要保留。版本更新就好像一棵生長的樹。所有版本均按版本模型(樹形結(jié)構(gòu))存放于倉儲庫中。為節(jié)省倉儲庫的存儲空間,版本存放采用增量法,即只存放新版本與舊版本不同部分的內(nèi)容。103②版本控制版本更新是軟件生存期中的自然現(xiàn)象。軟件系統(tǒng)每做一次③變更管理有變更的需求就要有變更的控制和管理。它的主要任務(wù)包括:分析變更的必要性和合理性,確定是否實(shí)施變更;記錄變更信息,填寫變更控制單;

做出更改,并交上級審批;修改相應(yīng)的軟件配置項(xiàng)(基線),確立新的版本;評審后發(fā)布新版本。104③變更管理有變更的需求就要有變更的控制和管理。它的主要任務(wù)④審計(jì)軟件配置項(xiàng)的更改反映了用戶提高、擴(kuò)充軟件系統(tǒng)功能和性能的要求以及軟件開發(fā)人員對軟件需求定義的認(rèn)識的提高。如何保證變更需求和變更實(shí)施結(jié)果的一致性?如何保證任何一個變更能順利正確地完成?這正是審計(jì)的作用。為保證軟件配置項(xiàng)變更的合理性和嚴(yán)肅性,必須實(shí)行嚴(yán)格的審計(jì)控制。一般采用兩種方法進(jìn)行審計(jì):正式技術(shù)評審著重檢查對軟件配置項(xiàng)的變更的技術(shù)正確性。綜合考慮此軟件配置項(xiàng)的變更對其它配置項(xiàng)乃至整個軟件系統(tǒng)的潛在影響和作用。軟件配置審核是審核變更的落實(shí)情況;變更修改是否完成?變更手續(xù)是否完備?變更修改有無違反標(biāo)準(zhǔn)?105④審計(jì)軟件配置項(xiàng)的更改反映了用戶提高、擴(kuò)充軟件系統(tǒng)功能和性⒋軟件知識產(chǎn)權(quán)保護(hù)計(jì)算機(jī)軟件是人類知識、智慧和創(chuàng)造性勞動的結(jié)晶,軟件產(chǎn)業(yè)是知識和資金密集型的新興產(chǎn)業(yè)。由于它具有開發(fā)工作量大、周期長,而生產(chǎn)(復(fù)制)容易、費(fèi)用低等特點(diǎn),因此,長期以來,軟件的知識產(chǎn)權(quán)得不到尊重,軟件的真正價值得不到承認(rèn),靠非法竊取他人軟件而牟取商業(yè)利益成了信息產(chǎn)業(yè)中投機(jī)者的一條捷徑。因此,軟件產(chǎn)權(quán)保護(hù)已成為急待解決的一個社會問題,是我國軟件產(chǎn)業(yè)健康發(fā)展的前提。1967年在瑞典斯得哥而摩成立了世界知識產(chǎn)權(quán)組織。1980年我國正式加入該組織。1990年9月我國頒布了《著作權(quán)法》,確定計(jì)算機(jī)軟件為保護(hù)的對象。1991年6月由國務(wù)院正式頒布了我國《計(jì)算機(jī)軟件保護(hù)條例》。應(yīng)該學(xué)習(xí)并掌握必要的軟件保護(hù)法律知識。一方面要尊重別人的智力勞動成果,不應(yīng)任意侵犯他人的軟件版權(quán);另一方面要采取切實(shí)的保護(hù)措施保護(hù)自己以及本單位開發(fā)的軟件成果。106⒋軟件知識產(chǎn)權(quán)保護(hù)計(jì)算機(jī)軟件是人類知識、智慧和創(chuàng)造性勞動的結(jié)

⑴軟件知識產(chǎn)權(quán)的法律保護(hù)

知識產(chǎn)權(quán)又稱為智力成果產(chǎn)權(quán)和智慧財(cái)產(chǎn)權(quán),是指對智力活動所創(chuàng)造的精神財(cái)富所享有的權(quán)利。知識產(chǎn)權(quán)分為:工業(yè)產(chǎn)權(quán)和版權(quán);前者主要包括專利權(quán)、商標(biāo)專有權(quán)和制止不正當(dāng)競爭權(quán);后者專指計(jì)算機(jī)軟件。知識產(chǎn)權(quán)的主要特點(diǎn)是:①無形性。是指其保護(hù)對象是無形的。知識產(chǎn)權(quán)的權(quán)利人只有當(dāng)其主張自己權(quán)利的時候,才能確認(rèn)為權(quán)利人。②專有性。指未經(jīng)知識產(chǎn)權(quán)人的同意,除法律有規(guī)定的情況外,他人不得占有或使用該項(xiàng)智力成果。③地域性。指法律保護(hù)知識產(chǎn)權(quán)的有效地區(qū)范圍。任何國家法律所確認(rèn)的知識產(chǎn)權(quán),只在其本國領(lǐng)域內(nèi)有效,除非該國與他國簽訂有雙邊協(xié)定或該國參加了有關(guān)知識產(chǎn)權(quán)保護(hù)的國際公約。④時間性。指法律保護(hù)知識產(chǎn)權(quán)的有效期限,期限屆滿即喪失效力。這是為限制權(quán)利人不致因自己對其智力成果的壟斷期過長而阻礙社會經(jīng)濟(jì)、文化和科學(xué)事業(yè)的發(fā)展。107⑴軟件知識產(chǎn)權(quán)的法律保護(hù)知識產(chǎn)權(quán)又稱為智力成果產(chǎn)權(quán)和⑵計(jì)算機(jī)軟件是著作權(quán)保護(hù)的客體①軟件著作權(quán)保護(hù)的基本條件

對計(jì)算機(jī)軟件來說,著作權(quán)法并不要求軟件達(dá)到某個較高的技術(shù)水平,只要是開發(fā)者獨(dú)立地自行開發(fā)的軟件,即可享有著作權(quán)。一個僅處于作者構(gòu)思過程中、未表現(xiàn)出來的軟件,不享有著作權(quán)。一個軟件必須在其創(chuàng)作出來,并固定在某種有形物體(如紙、磁帶、磁盤)上面,能為他人感知、傳播、復(fù)制的情況下,才能享有著作權(quán)保護(hù)。

②軟件著作權(quán)的特征

計(jì)算機(jī)軟件的體現(xiàn)形式是程序和文件。文件是受著作權(quán)法保護(hù)的(包括:人無法識別的目標(biāo)代碼)形式的程序、固化在只讀存儲器(ROM)中的程序等)。③軟件著作權(quán)的保護(hù)范圍

著作權(quán)法的基本原則是:只保護(hù)作品的表現(xiàn),而不保護(hù)作品中所體現(xiàn)的思想、概念。因此,在軟件中哪些是思想、概念?哪些是表現(xiàn)?要確定著作權(quán)保護(hù)客體的范圍是比較困難的。目前人們比較一致的認(rèn)為:軟件的功能目標(biāo)應(yīng)用屬于思想、概念,不受著作權(quán)法的保護(hù);而軟件的程序代碼則是表現(xiàn),應(yīng)屬于著作權(quán)保護(hù)的客體之內(nèi)。108⑵計(jì)算機(jī)軟件是著作權(quán)保護(hù)的客體①軟件著作權(quán)保護(hù)的基本條件對⑶軟件著作權(quán)人享有的專有權(quán)力

根據(jù)我國著作權(quán)法的規(guī)定,作品著作人(或稱版權(quán)人)享有5項(xiàng)專有權(quán)力:①發(fā)表權(quán)。決定作品是否公布于眾的權(quán)力。②署名權(quán)。表明作者身份,在作品上有署名權(quán)。③修改權(quán)。修改或授權(quán)他人修改作品的權(quán)力。④保護(hù)作品完整權(quán)。保護(hù)作品不受篡改的權(quán)力。⑤使用權(quán)和獲得報(bào)酬權(quán)。以復(fù)制、表演、播放、展覽、發(fā)行、攝制電影、電視、錄像或改編、翻譯、注釋、編輯等方式使用作品的權(quán)力,以及許可他人以上述方式作為作品,并由此獲得報(bào)酬的權(quán)力。109⑶軟件著作權(quán)人享有的專有權(quán)力109⑷軟件著作權(quán)的登記《計(jì)算機(jī)軟件保護(hù)條例》中對辦理軟件著作權(quán)登記有以下基本要求:①凡完成開發(fā)一年之內(nèi)的軟件均可向軟件登記機(jī)構(gòu)辦理登記申請。②凡已在軟件登記機(jī)構(gòu)辦理登記的軟件,在其專有權(quán)力發(fā)生轉(zhuǎn)讓活動時,受讓方應(yīng)在轉(zhuǎn)讓合同正式簽訂后的兩個月之內(nèi)向軟件登記機(jī)構(gòu)備案。③當(dāng)國籍或定居地為中國的著作權(quán)人或其受讓者,在中國境內(nèi)開發(fā)的計(jì)算機(jī)軟件的專有權(quán)力要向境外許可或轉(zhuǎn)讓時,許可方或轉(zhuǎn)讓方應(yīng)首先報(bào)請國務(wù)院有關(guān)主管部門批準(zhǔn),并向軟件登記機(jī)構(gòu)備案。110⑷軟件著作權(quán)的登記《計(jì)算機(jī)軟件保護(hù)條例》中對辦理軟件著作權(quán)登⑸辦理軟件著作權(quán)登記的基本要求:①辦理軟件著作權(quán)和軟件著作轉(zhuǎn)讓或許可的登記、備案手續(xù),應(yīng)當(dāng)?shù)椒ǘǖ幕驀抑付ǖ能浖怯洐C(jī)構(gòu)辦理。②辦理上述登記手續(xù)應(yīng)當(dāng)是軟件專有權(quán)人(包括公民、法人或非法人組織)或者是軟件專有權(quán)人委托的代理人。但代理人須向軟件登記管理機(jī)構(gòu)出示寫明委托權(quán)限的委托書。③通常一個獨(dú)立的軟件,只能辦理一次著作權(quán)的登記。若軟件是由多個獨(dú)立的軟件組成的,也可以分別辦理軟件著作權(quán)的登記手續(xù)。④辦理軟件著作權(quán)登記均應(yīng)以書面的形式進(jìn)行。在軟件申請書(登記表)上應(yīng)有申請者或代理人的簽章。⑤辦理軟件著作權(quán)登記時,申請者應(yīng)提交該軟件具有獨(dú)創(chuàng)性事實(shí)和轉(zhuǎn)讓、許可證明等有關(guān)鑒別材料。⑥對于軟件登記申請中出現(xiàn)的有關(guān)問題和遺漏,軟件申請者應(yīng)積極配合軟件登記機(jī)構(gòu)予以糾正。⑦所辦理的軟件登記手續(xù),均應(yīng)在法定的期限內(nèi)完成,否則將失去機(jī)會。⑧辦理登記手續(xù)時,應(yīng)交納法定的手續(xù)費(fèi)。111⑸辦理軟件著作權(quán)登記的基本要求:①辦理軟件著作權(quán)和軟件著作思考題第9章習(xí)題:1~24112思考題第9章習(xí)題:112第10周上機(jī)安排班級日期時間機(jī)房電氣93星期一14~18:00302電氣92星期一14~18:00302電氣91星期一18~22:00302電氣94星期四18~22:00302電氣95星期五18~22:00302應(yīng)化01星期四18~22:00302應(yīng)物91星期五18~22:00302113第10周上機(jī)安排班級日期結(jié)束語歡迎參加到中心網(wǎng)站《軟件基礎(chǔ)》課程的學(xué)習(xí)討論中來。中心網(wǎng)址:

http://課件下載地址:

ftp://我的E-mail地址:

LZQ_2668634@263.net謝謝!114結(jié)束語歡迎參加到中心網(wǎng)站《軟件基礎(chǔ)》課程的學(xué)習(xí)討論中來。11計(jì)算機(jī)軟件基礎(chǔ)

Thesoftwarebasicofcomputer

主講:劉志強(qiáng)第15單元軟件工程概論115計(jì)算機(jī)軟件基礎(chǔ)

Thesoftwarebasicof教學(xué)目標(biāo)了解軟件工程的基本概念掌握軟件工程的基本理論、技術(shù)和方法,運(yùn)用于軟件的開發(fā)和生產(chǎn)116教學(xué)目標(biāo)了解軟件工程的基本概念2教學(xué)內(nèi)容了解軟件、軟件工程的基本概念軟件的特征軟件危機(jī)、軟件工程瀑布模型、原型模型軟件生存周期中各個階段的任務(wù)、實(shí)施方法及步驟117教學(xué)內(nèi)容了解軟件、軟件工程的基本概念3本單元涉及內(nèi)容概述軟件的基本概念軟件的發(fā)展和軟件危機(jī)第9章軟件工程9.1軟件工程9.2軟件生存周期9.3軟件工程管理118本單元涉及內(nèi)容概述4一、基本概念軟件計(jì)算機(jī)系統(tǒng)中所有程序、數(shù)據(jù)結(jié)構(gòu)及有關(guān)文檔資料的總稱。軟件是計(jì)算機(jī)技術(shù)和人類智慧高度結(jié)合的產(chǎn)物,軟件開發(fā)不是簡單、機(jī)械地重復(fù)生產(chǎn),而是創(chuàng)造性的腦力勞動。軟件的作用軟件是今后信息產(chǎn)業(yè)發(fā)展的推動力。美國最近在24項(xiàng)高科技領(lǐng)域中調(diào)查結(jié)果表明,其中18項(xiàng)與軟件有關(guān)。119一、基本概念軟件計(jì)算機(jī)系統(tǒng)中所有程序、數(shù)據(jù)結(jié)構(gòu)及有關(guān)文檔資軟件工程學(xué)的體系結(jié)構(gòu)

軟件工程學(xué)軟件開發(fā)技術(shù)軟件開發(fā)方法學(xué)軟件工具軟件工程環(huán)境軟件工程管理軟件管理學(xué)軟件經(jīng)濟(jì)學(xué)120軟件工程學(xué)的體系結(jié)構(gòu)軟件工程學(xué)軟件開發(fā)技術(shù)軟件開發(fā)方法學(xué)軟問題的由來軟件內(nèi)在規(guī)律。任何事物有它自己的客觀規(guī)律和發(fā)展軌跡。只有認(rèn)識了它,才能駕馭它。軟件地位及作用。軟件是計(jì)算機(jī)系統(tǒng)中重要的組成部分。但在早期它并沒有引起業(yè)界的重視。隨著計(jì)算機(jī)技術(shù)的發(fā)展,隨著“軟件危機(jī)”的出現(xiàn),以及軟件危機(jī)對社會危害的增大,軟件的地位和作用也越來越重要。軟件工程學(xué)。業(yè)界人士不得不設(shè)置專門的學(xué)科——軟件工程學(xué)來研究軟件開發(fā)、生產(chǎn)的內(nèi)在規(guī)律,用于指導(dǎo)現(xiàn)代工程化的軟件生產(chǎn)。121問題的由來軟件內(nèi)在規(guī)律。任何事物有它自己的客觀規(guī)律和發(fā)展軌跡軟件的特征(與硬件產(chǎn)品比較)軟件是邏輯產(chǎn)品軟件產(chǎn)品質(zhì)量的體現(xiàn)方式不同軟件產(chǎn)品的失敗曲線不同軟件產(chǎn)品的成本構(gòu)成不同軟件產(chǎn)品不存在同類零件替換軟件產(chǎn)品的靜態(tài)和動態(tài)屬性122軟件的特征(與硬件產(chǎn)品比較)軟件是邏輯產(chǎn)品8軟件是邏輯產(chǎn)品軟件產(chǎn)品具有產(chǎn)值、價格、質(zhì)量和功能的特性,但看不見,是邏輯的、無形的,是腦力勞動的結(jié)晶。123軟件是邏輯產(chǎn)品軟件產(chǎn)品具有產(chǎn)值、價格、質(zhì)量和功能的特性,但看軟件產(chǎn)品質(zhì)量體現(xiàn)方式不同質(zhì)量體現(xiàn)方式不同:實(shí)用、可靠、可操作性;可維護(hù)性強(qiáng)方便用戶不會折舊、損壞、老化124軟件產(chǎn)品質(zhì)量體現(xiàn)方式不同質(zhì)量體現(xiàn)方式不同:10軟、硬件失敗曲線

125軟、硬件失敗曲線11成本構(gòu)成不同

12%需求率4%生產(chǎn)率開發(fā)人員成本構(gòu)成不同:主要投資在研制;軟件研制是一種人力、資金密集的產(chǎn)業(yè),而軟件生產(chǎn)只是簡單的復(fù)制、安裝和培訓(xùn)。126成本構(gòu)成不同12%需求率4%生產(chǎn)率開發(fā)人員成本構(gòu)成不同:軟件產(chǎn)品不存在同類零件替換硬件可更換零部件。當(dāng)硬件產(chǎn)品中某個部件損壞后,可以用相同的備用部件更換,使硬件系統(tǒng)恢復(fù)正常工作。軟件不能更換零部件。而軟件產(chǎn)品卻沒有相同的備用部件可言,因?yàn)檐浖霈F(xiàn)的每一個故障,要么是由于設(shè)計(jì)考慮不周造成的,要么是編程錯誤造成的。由于軟件無備用部件可供更換,因而軟件維護(hù)比硬件維護(hù)要復(fù)雜得多,成本也高得多。127軟件產(chǎn)品不存在同類零件替換硬件可更換零部件。當(dāng)硬件產(chǎn)品中某個軟件產(chǎn)品的靜態(tài)和動態(tài)屬性軟件是由程序和相關(guān)文檔資料組成的。程序是具有雙重屬性的:交流。它是求解客觀問題的邏輯描述,是供閱讀和交流的,它的表示是靜態(tài)的;執(zhí)行。程序最終是通過運(yùn)行去執(zhí)行特定的操作和數(shù)據(jù)處理,它又具有極其復(fù)雜和豐富內(nèi)涵的動態(tài)屬性。程序是否正確的有雙重標(biāo)準(zhǔn):靜態(tài)的程序正確與否是檢查它的語法和句法是否符合規(guī)則要求;動態(tài)的程序正確與否則要動態(tài)的測試程序的所有邏輯流結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)是否正確。而后一種測試的難度和代價較之前一種要大得多。128軟件產(chǎn)品的靜態(tài)和動態(tài)屬性軟件是由程序和相關(guān)文檔資料組成的。1硬件生產(chǎn)率大幅提高如今,計(jì)算機(jī)的發(fā)展已進(jìn)入一個新的歷史階段;硬件產(chǎn)品已系列化、標(biāo)準(zhǔn)化,“即插即用”。硬件產(chǎn)品的生產(chǎn)可以采用最高精尖的現(xiàn)代化工具和手段、自動成批生產(chǎn)。生產(chǎn)效率幾百萬倍的提高。生產(chǎn)能力過剩。返回129硬件生產(chǎn)率大幅提高如今,計(jì)算機(jī)的發(fā)展已進(jìn)入一個新的歷史階段;軟件生產(chǎn)率很低伴隨計(jì)算機(jī)的普及,整個社會對計(jì)算機(jī)應(yīng)用的需求越來越大。但軟件的生產(chǎn)卻還沿用“手工作坊”的生產(chǎn)方式,人工編程生產(chǎn)。生產(chǎn)效率僅提高了幾倍。生產(chǎn)能力極其低下。返回130軟件生產(chǎn)率很低伴隨計(jì)算機(jī)的普及,整個社會對計(jì)算機(jī)應(yīng)用的需求越硬、軟件供需失衡社會大量需求,生產(chǎn)成本高,生產(chǎn)過程控制復(fù)雜,生產(chǎn)效率低等等因素構(gòu)成軟件生產(chǎn)的惡性循環(huán)。由此產(chǎn)生“軟件危機(jī)”。返回131硬、軟件供需失衡社會大量需求,生產(chǎn)成本高,生產(chǎn)過程控制復(fù)雜,矛盾引發(fā)“軟件危機(jī)”軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。為了研究、解決軟件危機(jī),誕生了一門新興學(xué)科——軟件工程學(xué)。它把軟件作為工程對象,從技術(shù)措施和組織管理兩個方面來研究、解決軟件危機(jī)。132矛盾引發(fā)“軟件危機(jī)”軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程軟件危機(jī)的具體體現(xiàn)(1)軟件開發(fā)進(jìn)度難以預(yù)測(2)軟件開發(fā)成本難以控制(3)用戶對軟件功能難以滿足(4)軟件產(chǎn)品質(zhì)量無法保證(5)軟件產(chǎn)品難以維護(hù)(6)軟件缺少文檔資料133軟件危機(jī)的具體體現(xiàn)(1)軟件開發(fā)進(jìn)度難以預(yù)測19(1)軟件開發(fā)進(jìn)度難以預(yù)測拖延工期幾個月甚至幾年的現(xiàn)象并不罕見,這種現(xiàn)象降低了軟件開發(fā)組織的信譽(yù)。以丹佛新國際機(jī)場為例。該機(jī)場規(guī)模是曼哈頓機(jī)場的兩倍,寬為希思機(jī)場的10倍,可以全天侯同時起降三架噴氣式客機(jī);投資1.93億美元建立了一個地下行李傳送系統(tǒng),總長21英里,有4,000臺遙控車,可按不同線路在20家不同的航空公司柜臺、登機(jī)門和行李領(lǐng)取處之間發(fā)送和傳遞行李;支持該系統(tǒng)的是5,000個電子眼、400臺無線電接受機(jī)、56臺條形碼掃描儀和100臺計(jì)算機(jī)。按原定計(jì)劃要在1993年萬圣節(jié)前啟用,但一直到1994年6月,機(jī)場的計(jì)劃者還無法預(yù)測行李系統(tǒng)何時能達(dá)到可使機(jī)場開放的穩(wěn)定程度。134(1)軟件開發(fā)進(jìn)度難以預(yù)測拖延工期幾個月甚至幾年的現(xiàn)象并不罕(2)軟件開發(fā)成本難以控制投資一再追加,令人難于置信。往往是實(shí)際成本比預(yù)算成本高出一個數(shù)量級。而為了趕進(jìn)度和節(jié)約成本所采取的一些權(quán)宜之計(jì)又往往損害了軟件產(chǎn)品的質(zhì)量,從而不可避免地會引起用戶的不滿。135(2)軟件開發(fā)成本難以控制投資一再追加,令人難于置信。往往是(3)用戶對產(chǎn)品功能難以滿足開發(fā)人員和用戶之間很難溝通、矛盾很難統(tǒng)一。往往是軟件開發(fā)人員不能真正了解用戶的需求,而用戶又不了解計(jì)算機(jī)求解問題的模式和能力,雙方無法用共同熟悉的語言進(jìn)行交流和描述。在雙方互不充分了解的情況下,就倉促上陣設(shè)計(jì)系統(tǒng)、匆忙著手編寫程序,這種“閉門造車”的開發(fā)方式必然導(dǎo)致最終的產(chǎn)品不符合用戶的實(shí)際需要。136(3)用戶對產(chǎn)品功能難以滿足開發(fā)人員和用戶之間很難溝通、矛盾(4)軟件產(chǎn)品質(zhì)量無法保證系統(tǒng)中的錯誤難以消除。軟件是邏輯產(chǎn)品,質(zhì)量問題很難以統(tǒng)一的標(biāo)準(zhǔn)度量,因而造成質(zhì)量控制困難。軟件產(chǎn)品并不是沒有錯誤,而是盲目檢測很難發(fā)現(xiàn)錯誤,而隱藏下來的錯誤往往是造成重大事故的隱患。137(4)軟件產(chǎn)品質(zhì)量無法保證系統(tǒng)中的錯誤難以消除。軟件是邏輯產(chǎn)(5)軟件產(chǎn)品難以維護(hù)軟件產(chǎn)品本質(zhì)上是開發(fā)人員的代碼化的邏輯思維活動,他人難以替代。除非是開發(fā)者本人,否則很難及時檢測、排除系統(tǒng)故障。為使系統(tǒng)適應(yīng)新的硬件環(huán)境,或根據(jù)用戶的需要在原系統(tǒng)中增加一些新的功能,又有可能增加系統(tǒng)中的錯誤。138(5)軟件產(chǎn)品難以維護(hù)軟件產(chǎn)品本質(zhì)上是開發(fā)人員的代碼化的邏輯(6)軟件缺少適當(dāng)?shù)奈臋n資料文檔資料是軟件必不可少的重要組成部分。實(shí)際上,軟件的文檔資料是開發(fā)組織和用戶的之間權(quán)利和義務(wù)的合同書,是系統(tǒng)管理者、總體設(shè)計(jì)者向開發(fā)人員下達(dá)的任務(wù)書,是系統(tǒng)維護(hù)人員的技術(shù)指導(dǎo)手冊,是用戶的操作說明書。缺乏必要的文檔資料或者文檔資料不合格,將給軟件開發(fā)和維護(hù)帶來許多嚴(yán)重的困難和問題。139(6)軟件缺少適當(dāng)?shù)奈臋n資料文檔資料是軟件必不可少的重要組成軟件生產(chǎn)隨規(guī)模增大而復(fù)雜度增大以美國宇航局的軟件系統(tǒng)為例:1963年水星計(jì)劃系統(tǒng)200萬條指令1967年雙子星座計(jì)劃系統(tǒng)400萬條指令1973年阿波羅計(jì)劃系統(tǒng)1000萬條指令1979年哥倫比亞航天飛機(jī)系統(tǒng)4000萬條指令假設(shè)1個人一年生產(chǎn)一萬條有效指令,那么是否4000人生產(chǎn)一年,或400人生產(chǎn)10年就能完成任務(wù)嗎?答案是否定的。一萬條指令的復(fù)雜度決不僅僅是100條指令復(fù)雜度的100倍。140軟件生產(chǎn)隨規(guī)模增大而復(fù)雜度增大以美國宇航局的軟件系統(tǒng)為例:2典型失敗系統(tǒng)的例子IBM公司開發(fā)OS/360系統(tǒng),共有4000多個模塊,約100萬條指令,投入5000人年,耗資數(shù)億美元,結(jié)果還是延期交付。在交付使用后的系統(tǒng)中仍發(fā)現(xiàn)大量(2000個以上)的錯誤。141典型失敗系統(tǒng)的例子IBM公司開發(fā)OS/360系統(tǒng),共有400軟件危機(jī)產(chǎn)生的原因產(chǎn)生軟件危機(jī)有兩個方面的原因:內(nèi)部因素。與軟件本身的特點(diǎn)有關(guān)。內(nèi)在因素是客觀的存在,只能因勢利導(dǎo)加以解決。外部因素。與軟件開發(fā)和維護(hù)的技術(shù)方法有關(guān)。外部因素是可以完善、提高的。142軟件危機(jī)產(chǎn)生的原

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論