軟件工程概論-計(jì)算機(jī)軟件基礎(chǔ)課件_第1頁(yè)
軟件工程概論-計(jì)算機(jī)軟件基礎(chǔ)課件_第2頁(yè)
軟件工程概論-計(jì)算機(jī)軟件基礎(chǔ)課件_第3頁(yè)
軟件工程概論-計(jì)算機(jī)軟件基礎(chǔ)課件_第4頁(yè)
軟件工程概論-計(jì)算機(jī)軟件基礎(chǔ)課件_第5頁(yè)
已閱讀5頁(yè),還剩223頁(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)介

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

Thesoftwarebasicofcomputer

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

Thesoftwarebasicof教學(xué)目標(biāo)了解軟件工程的基本概念掌握軟件工程的基本理論、技術(shù)和方法,運(yùn)用于軟件的開(kāi)發(fā)和生產(chǎn)2教學(xué)目標(biāo)了解軟件工程的基本概念2教學(xué)內(nèi)容了解軟件、軟件工程的基本概念軟件的特征軟件危機(jī)、軟件工程瀑布模型、原型模型軟件生存周期中各個(gè)階段的任務(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ù)和人類(lèi)智慧高度結(jié)合的產(chǎn)物,軟件開(kāi)發(fā)不是簡(jiǎn)單、機(jī)械地重復(fù)生產(chǎn),而是創(chuàng)造性的腦力勞動(dòng)。軟件的作用軟件是今后信息產(chǎn)業(yè)發(fā)展的推動(dòng)力。美國(guó)最近在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é)軟件開(kāi)發(fā)技術(shù)軟件開(kāi)發(fā)方法學(xué)軟件工具軟件工程環(huán)境軟件工程管理軟件管理學(xué)軟件經(jīng)濟(jì)學(xué)6軟件工程學(xué)的體系結(jié)構(gòu)軟件工程學(xué)軟件開(kāi)發(fā)技術(shù)軟件開(kāi)發(fā)方法學(xué)軟問(wèn)題的由來(lái)軟件內(nèi)在規(guī)律。任何事物有它自己的客觀規(guī)律和發(fā)展軌跡。只有認(rèn)識(shí)了它,才能駕馭它。軟件地位及作用。軟件是計(jì)算機(jī)系統(tǒng)中重要的組成部分。但在早期它并沒(méi)有引起業(yè)界的重視。隨著計(jì)算機(jī)技術(shù)的發(fā)展,隨著“軟件危機(jī)”的出現(xiàn),以及軟件危機(jī)對(duì)社會(huì)危害的增大,軟件的地位和作用也越來(lái)越重要。軟件工程學(xué)。業(yè)界人士不得不設(shè)置專(zhuān)門(mén)的學(xué)科——軟件工程學(xué)來(lái)研究軟件開(kāi)發(fā)、生產(chǎn)的內(nèi)在規(guī)律,用于指導(dǎo)現(xiàn)代工程化的軟件生產(chǎn)。7問(wèn)題的由來(lái)軟件內(nèi)在規(guī)律。任何事物有它自己的客觀規(guī)律和發(fā)展軌跡軟件的特征(與硬件產(chǎn)品比較)軟件是邏輯產(chǎn)品軟件產(chǎn)品質(zhì)量的體現(xiàn)方式不同軟件產(chǎn)品的失敗曲線不同軟件產(chǎn)品的成本構(gòu)成不同軟件產(chǎn)品不存在同類(lèi)零件替換軟件產(chǎn)品的靜態(tài)和動(dòng)態(tài)屬性8軟件的特征(與硬件產(chǎn)品比較)軟件是邏輯產(chǎn)品8軟件是邏輯產(chǎn)品軟件產(chǎn)品具有產(chǎn)值、價(jià)格、質(zhì)量和功能的特性,但看不見(jiàn),是邏輯的、無(wú)形的,是腦力勞動(dòng)的結(jié)晶。9軟件是邏輯產(chǎn)品軟件產(chǎn)品具有產(chǎn)值、價(jià)格、質(zhì)量和功能的特性,但看軟件產(chǎn)品質(zhì)量體現(xiàn)方式不同質(zhì)量體現(xiàn)方式不同:實(shí)用、可靠、可操作性;可維護(hù)性強(qiáng)方便用戶不會(huì)折舊、損壞、老化10軟件產(chǎn)品質(zhì)量體現(xiàn)方式不同質(zhì)量體現(xiàn)方式不同:10軟、硬件失敗曲線

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

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

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

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

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

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

分析原型樣品模型設(shè)計(jì)編程測(cè)試使用修改與改進(jìn)在系統(tǒng)分析與設(shè)計(jì)中,采用交互式,反復(fù)修改與不斷改進(jìn)的方式進(jìn)行。還有的把原型模式嵌套在瀑布模型中運(yùn)用。69快速原型模型分析原型設(shè)計(jì)編程測(cè)試使用修改在系統(tǒng)分析與還有的⒋螺旋模型螺旋模型將工程劃分為4個(gè)主要活動(dòng):制定計(jì)劃、風(fēng)險(xiǎn)分析、實(shí)現(xiàn)工程和用戶評(píng)價(jià)。4個(gè)活動(dòng)螺旋式地重復(fù)執(zhí)行,直到最終得到用戶認(rèn)可的產(chǎn)品。制定計(jì)劃:確定軟件目標(biāo),選定實(shí)施方案,弄清項(xiàng)目開(kāi)發(fā)限制條件。風(fēng)險(xiǎn)分析:分析可選方案,分析識(shí)別風(fēng)險(xiǎn),研究解決化解風(fēng)險(xiǎn)的辦法。實(shí)現(xiàn)工程:實(shí)施軟件產(chǎn)品的開(kāi)發(fā)。用戶評(píng)價(jià):對(duì)當(dāng)前工作結(jié)果進(jìn)行評(píng)價(jià),提出改進(jìn)產(chǎn)品的建議。螺旋模型的缺點(diǎn):很難讓用戶確信這種演化方法的結(jié)果是可以控制的.70⒋螺旋模型螺旋模型將工程劃分為4個(gè)主要活動(dòng):制定計(jì)劃、風(fēng)險(xiǎn)分⒌其他模型智能模型也稱基于知識(shí)的軟件開(kāi)發(fā)模型,它與專(zhuān)家系統(tǒng)結(jié)合在一起。該模型應(yīng)用基于規(guī)則的系統(tǒng),采用歸納和推理機(jī)制,幫助軟件人員完成開(kāi)發(fā)工作,并使維護(hù)在系統(tǒng)規(guī)格說(shuō)明一級(jí)進(jìn)行。該模型在實(shí)施過(guò)程中要建立知識(shí)庫(kù),將模型本身、軟件工程知識(shí)與特定領(lǐng)域的知識(shí)分別存人數(shù)據(jù)庫(kù)。以軟件工程知識(shí)為基礎(chǔ)的生成規(guī)則構(gòu)成的專(zhuān)家系統(tǒng)與含應(yīng)用領(lǐng)域知識(shí)規(guī)則的其他專(zhuān)家系統(tǒng)相結(jié)合,構(gòu)成這一應(yīng)用領(lǐng)域軟件的開(kāi)發(fā)系統(tǒng)。面向?qū)ο笊嬷芷谀P推渲鲗?dǎo)思想是:在整個(gè)軟件開(kāi)發(fā)過(guò)程中將面向?qū)ο蠹夹g(shù)貫穿于整個(gè)生存周期。當(dāng)然,還要結(jié)合傳統(tǒng)開(kāi)發(fā)模式中好的、已被無(wú)數(shù)成功開(kāi)發(fā)活動(dòng)證明是可行的經(jīng)驗(yàn)和技術(shù)。71⒌其他模型智能模型也稱基于知識(shí)的軟件開(kāi)發(fā)模型,它與專(zhuān)家系四、軟件工程管理軟件工程項(xiàng)目管理的任務(wù)軟件人員組織與管理軟件配置管理軟件知識(shí)產(chǎn)權(quán)保護(hù)72四、軟件工程管理軟件工程項(xiàng)目管理的任務(wù)72⒈軟件工程項(xiàng)目管理的任務(wù)軟件工程項(xiàng)目管理所涉及的范圍覆蓋了整個(gè)軟件工程過(guò)程。它管理的任務(wù)是:根據(jù)項(xiàng)目合同書(shū)的要求,制定項(xiàng)目計(jì)劃和工程進(jìn)度安排、監(jiān)督和檢查項(xiàng)目實(shí)施過(guò)程、保證工程滿足要求的質(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ì)劃要列出軟件開(kāi)發(fā)要做的主要工作和任務(wù)清單,要回答“軟件工程項(xiàng)目做什么”。在工作和任務(wù)清單中要清楚地描述出:項(xiàng)目劃分的各個(gè)實(shí)施階段每個(gè)階段的工作重點(diǎn)和任務(wù)是什么完成本階段工作和任務(wù)的人力、資源需求,時(shí)間期限階段工作和任務(wù)的成果形式項(xiàng)目實(shí)施過(guò)程中對(duì)風(fēng)險(xiǎn)、疑難、其他不可預(yù)見(jiàn)因素等的處理機(jī)制各任務(wù)組及開(kāi)發(fā)人員之間的組織、協(xié)調(diào)關(guān)系等。74①項(xiàng)目計(jì)劃和進(jìn)度安排項(xiàng)目計(jì)劃要列出軟件開(kāi)發(fā)要做的主要工作和任進(jìn)度安排在制定項(xiàng)目進(jìn)度安排時(shí),主要依據(jù)是合同書(shū)和項(xiàng)目計(jì)劃。通常的做法是把復(fù)雜的整體項(xiàng)目分解成許多可以準(zhǔn)確描述、度量、可獨(dú)立操作的相對(duì)簡(jiǎn)單的任務(wù),然后安排這些任務(wù)的執(zhí)行順序,確定每個(gè)任務(wù)的完成期限、開(kāi)始時(shí)間和結(jié)束時(shí)間。開(kāi)始需要考慮的主要問(wèn)題是:項(xiàng)目可以支配的人力及資源項(xiàng)目的關(guān)鍵路徑生存周期各個(gè)階段工作量的劃分工程進(jìn)展如何度量各個(gè)階段任務(wù)完成標(biāo)志如何自然過(guò)渡到下一階段的任務(wù)等。75進(jìn)度安排在制定項(xiàng)目進(jìn)度安排時(shí),主要依據(jù)是合同書(shū)和項(xiàng)目計(jì)劃。通②項(xiàng)目追蹤和質(zhì)量保證項(xiàng)目追蹤實(shí)施由項(xiàng)目管理人員負(fù)責(zé)。他們必須按進(jìn)度安排表追蹤檢查每一個(gè)任務(wù)。如果任務(wù)實(shí)際完成日期滯后于進(jìn)度安排,則管理人員可以行使職權(quán)范圍內(nèi)的權(quán)力采取各種補(bǔ)救措施以減少進(jìn)度誤期所造成的影響。包括對(duì)資源重新定向,對(duì)任務(wù)重新安排,甚至可以修改交付日期以調(diào)整已經(jīng)暴露的問(wèn)題。質(zhì)量保證在軟件生存周期中是至關(guān)重要的。人們?cè)诠芾眄?xiàng)目時(shí)往往只強(qiáng)調(diào)必須按期完成任務(wù),必須遵循進(jìn)度計(jì)劃,必須把成本控制在預(yù)算范圍內(nèi),卻忽視了在生存周期各個(gè)階段工作和任務(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);完整性對(duì)未經(jīng)授權(quán)的操作,系統(tǒng)能夠進(jìn)行控制;可用性

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

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

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

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

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

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

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

在自頂向下法中,類(lèi)推估算法將估算項(xiàng)目的總體參數(shù)與類(lèi)似項(xiàng)目進(jìn)行直接比較得到結(jié)果;在自底向上法中,類(lèi)推是在兩個(gè)具有相似條件的工作單元之間進(jìn)行。算式估算法前兩種估算法的缺點(diǎn)在于:它們依靠的是帶有主觀猜測(cè)和盲目性的估算方法。算式估算法則是企圖避免主觀因素影響的一種方法。算式估算法有兩種基本類(lèi)型:由理論導(dǎo)出的算法和由經(jīng)驗(yàn)得出的算法。84成本估算方法簡(jiǎn)介專(zhuān)家估算法依靠一個(gè)或多個(gè)專(zhuān)家對(duì)項(xiàng)目做出估④風(fēng)險(xiǎn)分析在開(kāi)發(fā)新的軟件系統(tǒng)過(guò)程中,由于存在許多不確定因素,軟件開(kāi)發(fā)失敗的風(fēng)險(xiǎn)是客觀存在的。因此,風(fēng)險(xiǎn)分析對(duì)于軟件項(xiàng)目管理是決定性的。風(fēng)險(xiǎn)分析實(shí)際上就是貫穿在軟件工程過(guò)程中的一系列風(fēng)險(xiǎn)管理步驟,其中包括:風(fēng)險(xiǎn)識(shí)別、風(fēng)險(xiǎn)估計(jì)、風(fēng)險(xiǎn)管理策略、風(fēng)險(xiǎn)解決和風(fēng)險(xiǎn)監(jiān)督等。85④風(fēng)險(xiǎn)分析在開(kāi)發(fā)新的軟件系統(tǒng)過(guò)程中,由于存在許多不確定因素,主要風(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)。未曾使用過(guò)的新技術(shù)都存在風(fēng)險(xiǎn)。包括未使用過(guò)的新型硬件、支持軟件,缺乏標(biāo)準(zhǔn)與規(guī)范的非傳統(tǒng)的開(kāi)發(fā)方法等。技術(shù)過(guò)時(shí)也是風(fēng)險(xiǎn)。技術(shù)風(fēng)險(xiǎn)一般難于改正。③開(kāi)發(fā)環(huán)境。適用的開(kāi)發(fā)工具不足、不可靠、使用不方便等因素,都會(huì)降低開(kāi)發(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ā)揮這一重要的資源潛力,對(duì)于成功地完成軟件工程項(xiàng)目至關(guān)重要。項(xiàng)目組的組織結(jié)構(gòu)

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

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

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

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

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

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

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

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

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

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

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

計(jì)算機(jī)軟件的體現(xiàn)形式是程序和文件。文件是受著作權(quán)法保護(hù)的(包括:人無(wú)法識(shí)別的目標(biāo)代碼)形式的程序、固化在只讀存儲(chǔ)器(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ù)的基本條件對(duì)⑶軟件著作權(quán)人享有的專(zhuān)有權(quán)力

根據(jù)我國(guó)著作權(quán)法的規(guī)定,作品著作人(或稱版權(quán)人)享有5項(xiàng)專(zhuān)有權(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)人享有的專(zhuān)有權(quán)力109⑷軟件著作權(quán)的登記《計(jì)算機(jī)軟件保護(hù)條例》中對(duì)辦理軟件著作權(quán)登記有以下基本要求:①凡完成開(kāi)發(fā)一年之內(nèi)的軟件均可向軟件登記機(jī)構(gòu)辦理登記申請(qǐng)。②凡已在軟件登記機(jī)構(gòu)辦理登記的軟件,在其專(zhuān)有權(quán)力發(fā)生轉(zhuǎn)讓活動(dòng)時(shí),受讓方應(yīng)在轉(zhuǎn)讓合同正式簽訂后的兩個(gè)月之內(nèi)向軟件登記機(jī)構(gòu)備案。③當(dāng)國(guó)籍或定居地為中國(guó)的著作權(quán)人或其受讓者,在中國(guó)境內(nèi)開(kāi)發(fā)的計(jì)算機(jī)軟件的專(zhuān)有權(quán)力要向境外許可或轉(zhuǎn)讓時(shí),許可方或轉(zhuǎn)讓方應(yīng)首先報(bào)請(qǐng)國(guó)務(wù)院有關(guān)主管部門(mén)批準(zhǔn),并向軟件登記機(jī)構(gòu)備案。110⑷軟件著作權(quán)的登記《計(jì)算機(jī)軟件保護(hù)條例》中對(duì)辦理軟件著作權(quán)登⑸辦理軟件著作權(quán)登記的基本要求:①辦理軟件著作權(quán)和軟件著作轉(zhuǎn)讓或許可的登記、備案手續(xù),應(yīng)當(dāng)?shù)椒ǘǖ幕驀?guó)家指定的軟件登記機(jī)構(gòu)辦理。②辦理上述登記手續(xù)應(yīng)當(dāng)是軟件專(zhuān)有權(quán)人(包括公民、法人或非法人組織)或者是軟件專(zhuān)有權(quán)人委托的代理人。但代理人須向軟件登記管理機(jī)構(gòu)出示寫(xiě)明委托權(quán)限的委托書(shū)。③通常一個(gè)獨(dú)立的軟件,只能辦理一次著作權(quán)的登記。若軟件是由多個(gè)獨(dú)立的軟件組成的,也可以分別辦理軟件著作權(quán)的登記手續(xù)。④辦理軟件著作權(quán)登記均應(yīng)以書(shū)面的形式進(jìn)行。在軟件申請(qǐng)書(shū)(登記表)上應(yīng)有申請(qǐng)者或代理人的簽章。⑤辦理軟件著作權(quán)登記時(shí),申請(qǐng)者應(yīng)提交該軟件具有獨(dú)創(chuàng)性事實(shí)和轉(zhuǎn)讓、許可證明等有關(guān)鑒別材料。⑥對(duì)于軟件登記申請(qǐng)中出現(xiàn)的有關(guān)問(wèn)題和遺漏,軟件申請(qǐng)者應(yīng)積極配合軟件登記機(jī)構(gòu)予以糾正。⑦所辦理的軟件登記手續(xù),均應(yīng)在法定的期限內(nèi)完成,否則將失去機(jī)會(huì)。⑧辦理登記手續(xù)時(shí),應(yīng)交納法定的手續(xù)費(fèi)。111⑸辦理軟件著作權(quán)登記的基本要求:①辦理軟件著作權(quán)和軟件著作思考題第9章習(xí)題:1~24112思考題第9章習(xí)題:112第10周上機(jī)安排班級(jí)日期時(shí)間機(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ī)安排班級(jí)日期結(jié)束語(yǔ)歡迎參加到中心網(wǎng)站《軟件基礎(chǔ)》課程的學(xué)習(xí)討論中來(lái)。中心網(wǎng)址:

http://課件下載地址:

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

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

Thesoftwarebasicofcomputer

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

Thesoftwarebasicof教學(xué)目標(biāo)了解軟件工程的基本概念掌握軟件工程的基本理論、技術(shù)和方法,運(yùn)用于軟件的開(kāi)發(fā)和生產(chǎn)116教學(xué)目標(biāo)了解軟件工程的基本概念2教學(xué)內(nèi)容了解軟件、軟件工程的基本概念軟件的特征軟件危機(jī)、軟件工程瀑布模型、原型模型軟件生存周期中各個(gè)階段的任務(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ù)和人類(lèi)智慧高度結(jié)合的產(chǎn)物,軟件開(kāi)發(fā)不是簡(jiǎn)單、機(jī)械地重復(fù)生產(chǎn),而是創(chuàng)造性的腦力勞動(dòng)。軟件的作用軟件是今后信息產(chǎn)業(yè)發(fā)展的推動(dòng)力。美國(guó)最近在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é)軟件開(kāi)發(fā)技術(shù)軟件開(kāi)發(fā)方法學(xué)軟件工具軟件工程環(huán)境軟件工程管理軟件管理學(xué)軟件經(jīng)濟(jì)學(xué)120軟件工程學(xué)的體系結(jié)構(gòu)軟件工程學(xué)軟件開(kāi)發(fā)技術(shù)軟件開(kāi)發(fā)方法學(xué)軟問(wèn)題的由來(lái)軟件內(nèi)在規(guī)律。任何事物有它自己的客觀規(guī)律和發(fā)展軌跡。只有認(rèn)識(shí)了它,才能駕馭它。軟件地位及作用。軟件是計(jì)算機(jī)系統(tǒng)中重要的組成部分。但在早期它并沒(méi)有引起業(yè)界的重視。隨著計(jì)算機(jī)技術(shù)的發(fā)展,隨著“軟件危機(jī)”的出現(xiàn),以及軟件危機(jī)對(duì)社會(huì)危害的增大,軟件的地位和作用也越來(lái)越重要。軟件工程學(xué)。業(yè)界人士不得不設(shè)置專(zhuān)門(mén)的學(xué)科——軟件工程學(xué)來(lái)研究軟件開(kāi)發(fā)、生產(chǎn)的內(nèi)在規(guī)律,用于指導(dǎo)現(xiàn)代工程化的軟件生產(chǎn)。121問(wèn)題的由來(lái)軟件內(nèi)在規(guī)律。任何事物有它自己的客觀規(guī)律和發(fā)展軌跡軟件的特征(與硬件產(chǎn)品比較)軟件是邏輯產(chǎn)品軟件產(chǎn)品質(zhì)量的體現(xiàn)方式不同軟件產(chǎn)品的失敗曲線不同軟件產(chǎn)品的成本構(gòu)成不同軟件產(chǎn)品不存在同類(lèi)零件替換軟件產(chǎn)品的靜態(tài)和動(dòng)態(tài)屬性122軟件的特征(與硬件產(chǎn)品比較)軟件是邏輯產(chǎn)品8軟件是邏輯產(chǎn)品軟件產(chǎn)品具有產(chǎn)值、價(jià)格、質(zhì)量和功能的特性,但看不見(jiàn),是邏輯的、無(wú)形的,是腦力勞動(dòng)的結(jié)晶。123軟件是邏輯產(chǎn)品軟件產(chǎn)品具有產(chǎn)值、價(jià)格、質(zhì)量和功能的特性,但看軟件產(chǎn)品質(zhì)量體現(xiàn)方式不同質(zhì)量體現(xiàn)方式不同:實(shí)用、可靠、可操作性;可維護(hù)性強(qiáng)方便用戶不會(huì)折舊、損壞、老化124軟件產(chǎn)品質(zhì)量體現(xiàn)方式不同質(zhì)量體現(xiàn)方式不同:10軟、硬件失敗曲線

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

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

溫馨提示

  • 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)論