版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
計算機軟件基礎(chǔ)
Thesoftwarebasicofcomputer
主講:劉志強第15單元軟件工程概論1計算機軟件基礎(chǔ)
Thesoftwarebasicof教學目標了解軟件工程的基本概念掌握軟件工程的基本理論、技術(shù)和方法,運用于軟件的開發(fā)和生產(chǎn)2教學目標了解軟件工程的基本概念2教學內(nèi)容了解軟件、軟件工程的基本概念軟件的特征軟件危機、軟件工程瀑布模型、原型模型軟件生存周期中各個階段的任務、實施方法及步驟3教學內(nèi)容了解軟件、軟件工程的基本概念3本單元涉及內(nèi)容概述軟件的基本概念軟件的發(fā)展和軟件危機第9章軟件工程9.1軟件工程9.2軟件生存周期9.3軟件工程管理4本單元涉及內(nèi)容概述4一、基本概念軟件計算機系統(tǒng)中所有程序、數(shù)據(jù)結(jié)構(gòu)及有關(guān)文檔資料的總稱。軟件是計算機技術(shù)和人類智慧高度結(jié)合的產(chǎn)物,軟件開發(fā)不是簡單、機械地重復生產(chǎn),而是創(chuàng)造性的腦力勞動。軟件的作用軟件是今后信息產(chǎn)業(yè)發(fā)展的推動力。美國最近在24項高科技領(lǐng)域中調(diào)查結(jié)果表明,其中18項與軟件有關(guān)。5一、基本概念軟件計算機系統(tǒng)中所有程序、數(shù)據(jù)結(jié)構(gòu)及有關(guān)文檔資軟件工程學的體系結(jié)構(gòu)
軟件工程學軟件開發(fā)技術(shù)軟件開發(fā)方法學軟件工具軟件工程環(huán)境軟件工程管理軟件管理學軟件經(jīng)濟學6軟件工程學的體系結(jié)構(gòu)軟件工程學軟件開發(fā)技術(shù)軟件開發(fā)方法學軟問題的由來軟件內(nèi)在規(guī)律。任何事物有它自己的客觀規(guī)律和發(fā)展軌跡。只有認識了它,才能駕馭它。軟件地位及作用。軟件是計算機系統(tǒng)中重要的組成部分。但在早期它并沒有引起業(yè)界的重視。隨著計算機技術(shù)的發(fā)展,隨著“軟件危機”的出現(xiàn),以及軟件危機對社會危害的增大,軟件的地位和作用也越來越重要。軟件工程學。業(yè)界人士不得不設(shè)置專門的學科——軟件工程學來研究軟件開發(fā)、生產(chǎn)的內(nèi)在規(guī)律,用于指導現(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)方式不同:實用、可靠、可操作性;可維護性強方便用戶不會折舊、損壞、老化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)只是簡單的復制、安裝和培訓。12成本構(gòu)成不同12%需求率4%生產(chǎn)率開發(fā)人員成本構(gòu)成不同:軟件產(chǎn)品不存在同類零件替換硬件可更換零部件。當硬件產(chǎn)品中某個部件損壞后,可以用相同的備用部件更換,使硬件系統(tǒng)恢復正常工作。軟件不能更換零部件。而軟件產(chǎn)品卻沒有相同的備用部件可言,因為軟件出現(xiàn)的每一個故障,要么是由于設(shè)計考慮不周造成的,要么是編程錯誤造成的。由于軟件無備用部件可供更換,因而軟件維護比硬件維護要復雜得多,成本也高得多。13軟件產(chǎn)品不存在同類零件替換硬件可更換零部件。當硬件產(chǎn)品中某個軟件產(chǎn)品的靜態(tài)和動態(tài)屬性軟件是由程序和相關(guān)文檔資料組成的。程序是具有雙重屬性的:交流。它是求解客觀問題的邏輯描述,是供閱讀和交流的,它的表示是靜態(tài)的;執(zhí)行。程序最終是通過運行去執(zhí)行特定的操作和數(shù)據(jù)處理,它又具有極其復雜和豐富內(nèi)涵的動態(tài)屬性。程序是否正確的有雙重標準:靜態(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)率大幅提高如今,計算機的發(fā)展已進入一個新的歷史階段;硬件產(chǎn)品已系列化、標準化,“即插即用”。硬件產(chǎn)品的生產(chǎn)可以采用最高精尖的現(xiàn)代化工具和手段、自動成批生產(chǎn)。生產(chǎn)效率幾百萬倍的提高。生產(chǎn)能力過剩。返回15硬件生產(chǎn)率大幅提高如今,計算機的發(fā)展已進入一個新的歷史階段;軟件生產(chǎn)率很低伴隨計算機的普及,整個社會對計算機應用的需求越來越大。但軟件的生產(chǎn)卻還沿用“手工作坊”的生產(chǎn)方式,人工編程生產(chǎn)。生產(chǎn)效率僅提高了幾倍。生產(chǎn)能力極其低下。返回16軟件生產(chǎn)率很低伴隨計算機的普及,整個社會對計算機應用的需求越硬、軟件供需失衡社會大量需求,生產(chǎn)成本高,生產(chǎn)過程控制復雜,生產(chǎn)效率低等等因素構(gòu)成軟件生產(chǎn)的惡性循環(huán)。由此產(chǎn)生“軟件危機”。返回17硬、軟件供需失衡社會大量需求,生產(chǎn)成本高,生產(chǎn)過程控制復雜,矛盾引發(fā)“軟件危機”軟件危機是指在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。為了研究、解決軟件危機,誕生了一門新興學科——軟件工程學。它把軟件作為工程對象,從技術(shù)措施和組織管理兩個方面來研究、解決軟件危機。18矛盾引發(fā)“軟件危機”軟件危機是指在計算機軟件的開發(fā)和維護過程軟件危機的具體體現(xiàn)(1)軟件開發(fā)進度難以預測(2)軟件開發(fā)成本難以控制(3)用戶對軟件功能難以滿足(4)軟件產(chǎn)品質(zhì)量無法保證(5)軟件產(chǎn)品難以維護(6)軟件缺少文檔資料19軟件危機的具體體現(xiàn)(1)軟件開發(fā)進度難以預測19(1)軟件開發(fā)進度難以預測拖延工期幾個月甚至幾年的現(xiàn)象并不罕見,這種現(xiàn)象降低了軟件開發(fā)組織的信譽。以丹佛新國際機場為例。該機場規(guī)模是曼哈頓機場的兩倍,寬為希思機場的10倍,可以全天侯同時起降三架噴氣式客機;投資1.93億美元建立了一個地下行李傳送系統(tǒng),總長21英里,有4,000臺遙控車,可按不同線路在20家不同的航空公司柜臺、登機門和行李領(lǐng)取處之間發(fā)送和傳遞行李;支持該系統(tǒng)的是5,000個電子眼、400臺無線電接受機、56臺條形碼掃描儀和100臺計算機。按原定計劃要在1993年萬圣節(jié)前啟用,但一直到1994年6月,機場的計劃者還無法預測行李系統(tǒng)何時能達到可使機場開放的穩(wěn)定程度。20(1)軟件開發(fā)進度難以預測拖延工期幾個月甚至幾年的現(xiàn)象并不罕(2)軟件開發(fā)成本難以控制投資一再追加,令人難于置信。往往是實際成本比預算成本高出一個數(shù)量級。而為了趕進度和節(jié)約成本所采取的一些權(quán)宜之計又往往損害了軟件產(chǎn)品的質(zhì)量,從而不可避免地會引起用戶的不滿。21(2)軟件開發(fā)成本難以控制投資一再追加,令人難于置信。往往是(3)用戶對產(chǎn)品功能難以滿足開發(fā)人員和用戶之間很難溝通、矛盾很難統(tǒng)一。往往是軟件開發(fā)人員不能真正了解用戶的需求,而用戶又不了解計算機求解問題的模式和能力,雙方無法用共同熟悉的語言進行交流和描述。在雙方互不充分了解的情況下,就倉促上陣設(shè)計系統(tǒng)、匆忙著手編寫程序,這種“閉門造車”的開發(fā)方式必然導致最終的產(chǎn)品不符合用戶的實際需要。22(3)用戶對產(chǎn)品功能難以滿足開發(fā)人員和用戶之間很難溝通、矛盾(4)軟件產(chǎn)品質(zhì)量無法保證系統(tǒng)中的錯誤難以消除。軟件是邏輯產(chǎn)品,質(zhì)量問題很難以統(tǒng)一的標準度量,因而造成質(zhì)量控制困難。軟件產(chǎn)品并不是沒有錯誤,而是盲目檢測很難發(fā)現(xiàn)錯誤,而隱藏下來的錯誤往往是造成重大事故的隱患。23(4)軟件產(chǎn)品質(zhì)量無法保證系統(tǒng)中的錯誤難以消除。軟件是邏輯產(chǎn)(5)軟件產(chǎn)品難以維護軟件產(chǎn)品本質(zhì)上是開發(fā)人員的代碼化的邏輯思維活動,他人難以替代。除非是開發(fā)者本人,否則很難及時檢測、排除系統(tǒng)故障。為使系統(tǒng)適應新的硬件環(huán)境,或根據(jù)用戶的需要在原系統(tǒng)中增加一些新的功能,又有可能增加系統(tǒng)中的錯誤。24(5)軟件產(chǎn)品難以維護軟件產(chǎn)品本質(zhì)上是開發(fā)人員的代碼化的邏輯(6)軟件缺少適當?shù)奈臋n資料文檔資料是軟件必不可少的重要組成部分。實際上,軟件的文檔資料是開發(fā)組織和用戶的之間權(quán)利和義務的合同書,是系統(tǒng)管理者、總體設(shè)計者向開發(fā)人員下達的任務書,是系統(tǒng)維護人員的技術(shù)指導手冊,是用戶的操作說明書。缺乏必要的文檔資料或者文檔資料不合格,將給軟件開發(fā)和維護帶來許多嚴重的困難和問題。25(6)軟件缺少適當?shù)奈臋n資料文檔資料是軟件必不可少的重要組成軟件生產(chǎn)隨規(guī)模增大而復雜度增大以美國宇航局的軟件系統(tǒng)為例:1963年水星計劃系統(tǒng)200萬條指令1967年雙子星座計劃系統(tǒng)400萬條指令1973年阿波羅計劃系統(tǒng)1000萬條指令1979年哥倫比亞航天飛機系統(tǒng)4000萬條指令假設(shè)1個人一年生產(chǎn)一萬條有效指令,那么是否4000人生產(chǎn)一年,或400人生產(chǎn)10年就能完成任務嗎?答案是否定的。一萬條指令的復雜度決不僅僅是100條指令復雜度的100倍。26軟件生產(chǎn)隨規(guī)模增大而復雜度增大以美國宇航局的軟件系統(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軟件危機產(chǎn)生的原因產(chǎn)生軟件危機有兩個方面的原因:內(nèi)部因素。與軟件本身的特點有關(guān)。內(nèi)在因素是客觀的存在,只能因勢利導加以解決。外部因素。與軟件開發(fā)和維護的技術(shù)方法有關(guān)。外部因素是可以完善、提高的。28軟件危機產(chǎn)生的原因產(chǎn)生軟件危機有兩個方面的原因:28軟件特點的因素軟件是邏輯產(chǎn)品,是代碼化了的人的思維活動。在總體構(gòu)思時,別人無法管理和干預。在寫出程序、并在機器上運行之前,進展情況難以掌握,開發(fā)質(zhì)量也無法評估。這些都給管理和控制帶來不便。軟件是特定問題在計算機上的運行描述。實際問題的復雜性決定了一個實用軟件系統(tǒng)規(guī)模往往十分龐大。程序規(guī)模越大,控制、管理難度也就越大。29軟件特點的因素軟件是邏輯產(chǎn)品,是代碼化了的人的思維活動。在總軟件開發(fā)維護技術(shù)方法的因素開發(fā)人員和用戶之間的矛盾。許多軟件系統(tǒng)開發(fā)失敗的主要原因是開發(fā)人員在沒有準確、完整地了解了用戶的需求后就急于編程;用戶對需求也往往不能準確、完整地提出。軟件產(chǎn)品有其生命周期。在周期的各個階段有其具體的任務,如何完成任務,各個階段有不同的技術(shù)方法和操作步驟。只有科學的按生命周期各階段的任務去組織實施,才能保證質(zhì)量,降低成本;急于求成,不按科學規(guī)律、方法實施,只能“事倍功半”,事與愿違。軟件產(chǎn)品的使用壽命很長。在這期間因功能的增加、硬件的更新?lián)Q代,都要對軟件進行必要的修改。據(jù)統(tǒng)計數(shù)據(jù)表明,軟件維護的費用占總費用的55%~70%。軟件工程的一個重要目標就是提高軟件的可維護性,減少軟件維護的代價。30軟件開發(fā)維護技術(shù)方法的因素開發(fā)人員和用戶之間的矛盾。許多軟件解決軟件危機的途徑為了解決軟件危機就要從技術(shù)措施和組織管理兩個方面去研究,不斷總結(jié)經(jīng)驗教訓,提高軟件產(chǎn)品的生產(chǎn)效率,降低軟件開發(fā)和維護的成本。開發(fā)軟件選用最好的開發(fā)工具是至關(guān)重要的,即選擇、設(shè)置良好的軟件工程支撐環(huán)境。工具選用的好,它可以“放大”人的智力,大大加快軟件開發(fā)速度,提高軟件質(zhì)量。31解決軟件危機的途徑為了解決軟件危機就要從技術(shù)措施和組織管理兩軟件開發(fā)的演變過程程序設(shè)計階段軟件設(shè)計階段軟件工程階段32軟件開發(fā)的演變過程程序設(shè)計階段32程序設(shè)計階段(1946年~1955年)特點:尚無軟件的概念,程序設(shè)計主要圍繞硬件進行開發(fā),規(guī)模很小,工具簡單,無明確分工(開發(fā)者和用戶),程序設(shè)計追求節(jié)省空間和編程技巧,無文檔資料。主要是用于科學計算。33程序設(shè)計階段(1946年~1955年)特點:33軟件設(shè)計階段(1956年~1970年)特點:硬件環(huán)境相對穩(wěn)定,出現(xiàn)“軟件作坊”的開發(fā)組織形式。開始使用產(chǎn)品軟件(可購買),從而建立了軟件的概念。系統(tǒng)規(guī)模越來越龐大,高級編程語言層出不窮,應用領(lǐng)域不斷拓寬,開發(fā)者和用戶有了明確分工,社會對軟件的需求量劇增。但是軟件開發(fā)技術(shù)沒有重大突破,生產(chǎn)效率低下,從而導致“軟件危機”產(chǎn)生。34軟件設(shè)計階段(1956年~1970年)特點:34軟件工程階段(1970年~至今)由于軟件危機的產(chǎn)生,迫使人們不得不研究、改變軟件開發(fā)的技術(shù)手段和管理方法。從此軟件生產(chǎn)進入軟件工程時代。特點:硬件已向“四化”(巨型、微型、網(wǎng)絡(luò)、智能)發(fā)展,數(shù)據(jù)庫技術(shù)已成熟并廣泛應用,第三、四代語言出現(xiàn)。第一代軟件技術(shù)——結(jié)構(gòu)化程序設(shè)計在數(shù)值計算領(lǐng)域取得優(yōu)異成績;第二代軟件技術(shù)——軟件測試技術(shù)、方法、原理用于軟件生產(chǎn)過程;第三代軟件技術(shù)——處理需求定義技術(shù),用于軟件需求分析和描述。35軟件工程階段(1970年~至今)由于軟件危機的產(chǎn)生,迫使人們二、軟件工程“軟件工程”一詞是1968年北大西洋公約組織的計算機科學家在當時聯(lián)邦德國召開的專門討論解決“軟件危機”的國際會議上正式提出并使用的,并由此誕生了一門新興學科——軟件工程學?!败浖こ虒W”是一門交叉學科,它涉及計算機科學、管理科學、工程學和數(shù)學。計算機科學培養(yǎng)的是計算機科學家,而軟件工程則是培養(yǎng)軟件工程師。36二、軟件工程“軟件工程”一詞是1968年北大西洋公約組織的計軟件工程的目標軟件工程的基本目標是:開發(fā)盡可能多的軟件產(chǎn)品;提高軟件的生產(chǎn)效率;滿足應用的功能需要;降低軟件開發(fā)成本。37軟件工程的目標軟件工程的基本目標是:37軟件工程的指導思想為解決軟件危機,把“軟件”這種特殊商品的生產(chǎn)、管理過程納入傳統(tǒng)工程管理的軌道;用計算機科學中的最新成果應用于軟件工程中用管理學的原理和方法進行軟件生產(chǎn)管理用工程學的觀點進行核算,制定工程進度和實施方案用數(shù)學方法建立軟件的可靠模型和各種有效算法38軟件工程的指導思想為解決軟件危機,把“軟件”這種特殊商品的生軟件工程基本原理自1968年提出“軟件工程”的概念以來,專家學者又陸續(xù)突出了100多條關(guān)于軟件工程的準則。著名軟件工程專家B.W.Boehm于1983年發(fā)表的一篇論文中提出了軟件工程的七條基本原理。他認為這七條原理是確保軟件產(chǎn)品質(zhì)量和開發(fā)效率的最小準則集合。39軟件工程基本原理自1968年提出“軟件工程”的概念以來,專家軟件工程七條基本原理用分階段的生命周期計劃嚴格管理堅持進行階段評審實行嚴格的產(chǎn)品控制采用現(xiàn)代程序設(shè)計技術(shù)結(jié)果應能清楚地審查開發(fā)小組人員少而精承認不斷改進軟件工程實踐的必要性40軟件工程七條基本原理用分階段的生命周期計劃嚴格管理40用分階段生命周期計劃嚴格管理在軟件的整個生命周期中應該制定并嚴格執(zhí)行六類計劃:項目概要、項目進度表、項目控制、產(chǎn)品控制、驗證及運行維護計劃。不同層次的管理人員必須嚴格按照計劃各盡其職地去管理軟件開發(fā)與維護工作,絕不能受客戶或上級的影響而擅自背離預定計劃。41用分階段生命周期計劃嚴格管理在軟件的整個生命周期中應該制定并堅持進行階段評審軟件的質(zhì)量保證工作不能等到編碼階段結(jié)束之后再進行。這是因為:大部分錯誤是在編碼之前造成的(根據(jù)Boehm統(tǒng)計,設(shè)計錯誤占軟件錯誤的63%,編碼錯誤占37%)。錯誤發(fā)現(xiàn)與改正得越晚,所付出的代價也越高。因此,在每個階段進行嚴格的評審,盡早發(fā)現(xiàn)并修正各個階段中所犯的錯誤是一條必須遵循的重要原則。42堅持進行階段評審軟件的質(zhì)量保證工作不能等到編碼階段結(jié)束之后再示意圖關(guān)于階段評審作用
43示意圖關(guān)于階段評審作用43實行嚴格的產(chǎn)品控制在軟件開發(fā)過程中不應隨意改變需求(改變一項需求往往要付出很高的代價),但不能禁止更改需求。當必須修改時,為了保持軟件各配置成分的一致性,必須實行嚴格的產(chǎn)品控制(主要是實行基準配置管理)。一切有關(guān)修改軟件的建議(特別是涉及到對基準配置的修改建議)都必須按照嚴格的規(guī)程進行評審,獲準后才能實施修改)。絕對不能誰想修改就隨意進行修改的行為。44實行嚴格的產(chǎn)品控制在軟件開發(fā)過程中不應隨意改變需求(改變一項采用現(xiàn)代程序設(shè)計技術(shù)以前的結(jié)構(gòu)化程序設(shè)計技術(shù),如今的面向?qū)ο蟪绦蛟O(shè)計技術(shù)都被實踐證明是各個不同歷史階段的優(yōu)秀程序設(shè)計技術(shù)和方法。采用先進的技術(shù)既可以提高軟件開發(fā)的效率,又可以提高軟件維護的效率。45采用現(xiàn)代程序設(shè)計技術(shù)以前的結(jié)構(gòu)化程序設(shè)計技術(shù),如今的面向?qū)ο蠼Y(jié)果應能清楚地審查軟件產(chǎn)品是看不見、摸不著的邏輯產(chǎn)品,軟件開發(fā)人員的工作進展情況可見性差。為了提高開發(fā)過程的可見性,應根據(jù)軟件開發(fā)項目中的目標完成期限,規(guī)定開發(fā)組織的責任和產(chǎn)品標準,使得到的結(jié)果能夠清楚的審查。46結(jié)果應能清楚地審查軟件產(chǎn)品是看不見、摸不著的邏輯產(chǎn)品,軟件開開發(fā)小組人員少而精開發(fā)小組成員的素質(zhì)應該高,人員不宜過多。人員素質(zhì)和數(shù)量是影響產(chǎn)品質(zhì)量和開發(fā)效率的重要因素。素質(zhì)高的人開發(fā)效率比低的人高幾倍甚至幾十倍,而錯誤則明顯得少;人數(shù)增加,管理難度也增加。47開發(fā)小組人員少而精開發(fā)小組成員的素質(zhì)應該高,人員不宜過多。人承認不斷改進軟件工程實踐的必要性要積極主動地采納新的軟件技術(shù),要不斷總結(jié)經(jīng)驗;不能自以為是,固步自封,唯我獨好。大千世界,錯綜復雜,只有不斷學習,才能不斷進取,不斷進步。48承認不斷改進軟件工程實踐的必要性要積極主動地采納新的軟件技術(shù)軟件工程應用范圍個人程序、中小型或一般程序同開發(fā)人員之間的關(guān)聯(lián)較小,應用SE方法收效甚微。大型程序要由若干個程序員小組承擔開發(fā),相互關(guān)系極其復雜,因此,必須自始至終堅持SE方法。49軟件工程應用范圍個人程序、中小型或一般程序同開發(fā)人員之間的關(guān)應用程序分類分類程序規(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應用程序分類分類程序規(guī)模傳統(tǒng)軟件工程模式70年代,計算機技術(shù)水平不高,開發(fā)工具少而且性能差。對于大型復雜問題的求解方法有很大的局限性影響。軟件工程采用的方法:把軟件生存周期劃分成若干個階段,每個階段的任務相對獨立,而且比較簡單,便于不同人員分工協(xié)作,從而降低整個軟件開發(fā)工程的困難程度。在實現(xiàn)每個階段的任務時,采用的是系統(tǒng)化的技術(shù)方法——結(jié)構(gòu)化分析和結(jié)構(gòu)化設(shè)計技術(shù)。傳統(tǒng)軟件工程模式的缺點:強調(diào)了分階段實施模塊化、結(jié)構(gòu)化程序設(shè)計技術(shù)和方法,而忽視了人在軟件開發(fā)過程中的地位和作用。51傳統(tǒng)軟件工程模式70年代,計算機技術(shù)水平不高,開發(fā)工具少而現(xiàn)代軟件工程模式現(xiàn)代軟件工程是在傳統(tǒng)軟件工程模式的基礎(chǔ)上,為了強調(diào)人在系統(tǒng)開發(fā)中的作用,同時為了適應軟件新技術(shù)的發(fā)展趨勢而提出的。其基本要點是:以人為主,充分利用軟件開發(fā)方法及軟件開發(fā)工具;開發(fā)人員的組織管理對軟件開發(fā)成功與否至關(guān)重要;基于軟件組件的軟件開發(fā)技術(shù)。各種功能的可重用軟件組件不斷問世。這使得在軟件開發(fā)過程中編程工作量日趨減少,取而代之的是在設(shè)計好系統(tǒng)體系結(jié)構(gòu)后,利用軟件組件構(gòu)造或重構(gòu)軟件系統(tǒng)。由于軟件組件是標準化設(shè)計、成品化生產(chǎn)的,極易構(gòu)造使用,從而大大簡化了設(shè)計、編程、測試各個環(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ǔ)上,為階段的劃分及主要任務系統(tǒng)分析系統(tǒng)設(shè)計系統(tǒng)測試軟件組件系統(tǒng)開發(fā)人員的組織管理53階段的劃分及主要任務系統(tǒng)分析53系統(tǒng)分析系統(tǒng)分析從系統(tǒng)需求入手,從用戶觀點出發(fā)建立系統(tǒng)用戶模型。用戶模型從概念上全方位表達系統(tǒng)需求及系統(tǒng)與用戶的相互關(guān)系。系統(tǒng)分析在用戶模型的基礎(chǔ)上,建立適應性強的獨立于系統(tǒng)實現(xiàn)環(huán)境的邏輯結(jié)構(gòu)。分析階段獨立于系統(tǒng)實現(xiàn)環(huán)境,可以保證建立起來的系統(tǒng)結(jié)構(gòu)具有相對的穩(wěn)定性,便于系統(tǒng)維護、移植或擴充。在系統(tǒng)分析階段,系統(tǒng)的邏輯結(jié)構(gòu)應從以下三方面全面反映系統(tǒng)的功能與性能:(1)信息。完整描述系統(tǒng)中所處理的全部信息;(2)行為。完全描述系統(tǒng)狀態(tài)變化所需處理或功能;(3)表示。詳細描述系統(tǒng)的對外接口與界面。
54系統(tǒng)分析系統(tǒng)分析從系統(tǒng)需求入手,從用戶觀點出發(fā)建立系統(tǒng)用戶模系統(tǒng)設(shè)計在系統(tǒng)設(shè)計階段,首先考慮具體的實現(xiàn)環(huán)境。在設(shè)計時,可能會對系統(tǒng)結(jié)構(gòu)作一些調(diào)整,但為了保持系統(tǒng)結(jié)構(gòu)的穩(wěn)定性,應盡可能避免由于實現(xiàn)環(huán)境的特定要求而改變系統(tǒng)結(jié)構(gòu)。設(shè)計、構(gòu)造系統(tǒng)的軟件組件。設(shè)計軟件組件的主要內(nèi)容是定義組件的結(jié)構(gòu)、功能和外部接口,以及組件之間的相互關(guān)系和通信方式。對于復雜的大系統(tǒng),還可以根據(jù)組件之間關(guān)聯(lián)的緊密程度,將關(guān)聯(lián)密切的多個組件形成一個子系統(tǒng),子系統(tǒng)之間具有松散的耦合。在系統(tǒng)實現(xiàn)階段,對于需要開發(fā)的軟件組件,選擇采用某種合適的程序設(shè)計語言編寫相應的源代碼程序,完成系統(tǒng)實現(xiàn)工作。55系統(tǒng)設(shè)計在系統(tǒng)設(shè)計階段,首先考慮具體的實現(xiàn)環(huán)境。在設(shè)計時,可系統(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ā)與維護系統(tǒng)構(gòu)造過程中用到的組件。將軟件組件作為一個單獨的過程,目的是將組件作為構(gòu)造軟件的“零部件”。隨著軟件技術(shù)的不斷發(fā)展及軟件工程的不斷完善,軟件組件將會作為一種獨立的軟件產(chǎn)品出現(xiàn)在市場上,供應用開發(fā)人員在構(gòu)造應用系統(tǒng)時選用。57軟件組件在現(xiàn)代軟件工程的開發(fā)過程中,軟件組件只是一個輔助或支系統(tǒng)開發(fā)人員的組織管理現(xiàn)代軟件工程不僅包括軟件開發(fā)方法、工具和過程,更強調(diào)人在開發(fā)過程中的作用。一個復雜的系統(tǒng)開發(fā)過程,涉及到眾多的以人為主的各種開發(fā)活動,通過這些活動的有機配合與協(xié)調(diào)才能保證系統(tǒng)開發(fā)的成功。因此,系統(tǒng)開發(fā)人員的組織管理是現(xiàn)代軟件工程中的重要方面。組織管理方法有以下幾個要點:①明確系統(tǒng)開發(fā)人員與用戶之間的責任與義務;②明確各類開發(fā)人員的主要工作及責任;③制定或選擇工程開發(fā)規(guī)范。58系統(tǒng)開發(fā)人員的組織管理現(xiàn)代軟件工程不僅包括軟件開發(fā)方法、工具三、軟件生命周期軟件生存周期指從軟件的需求分析、設(shè)計、編程、測試、交付用戶使用到版本升級、或被被自然淘汰的過程。軟件工程的應用模式也稱為軟件生存周期模式。通常也稱其為“瀑布模型”(B.W.Bohem提出的該模型)。59三、軟件生命周期軟件生存周期指從軟件的需求分析、設(shè)計、編程、⒈軟件生命周期各個階段任務需求分析、定義系統(tǒng)總體設(shè)計系統(tǒng)編程系統(tǒng)測試系統(tǒng)維護60⒈軟件生命周期各個階段任務需求分析、定義60⑴需求分析、定義任務是:收集、分析、理解、確定用戶的要求;然后把用戶的要求精確、完整地描述表達出來。目的:要回答“要解決什么問題?”,既系統(tǒng)”做什么?“。分兩步驟:可行性研究:制定軟件開發(fā)計劃進行需求分析階段結(jié)果,產(chǎn)生出:可行性報告、軟件計劃、需求說明書61⑴需求分析、定義任務是:收集、分析、理解、確定用戶的要求;然⑵系統(tǒng)總體設(shè)計任務是:設(shè)計軟件系統(tǒng)的模塊層次結(jié)構(gòu)模塊間邏輯關(guān)系、參數(shù)每個模塊的功能目的:要回答“如何解決該問題?”,既系統(tǒng)”怎樣做?“。分兩步驟:概要設(shè)計:解決系統(tǒng)的模塊劃分、模塊的層次結(jié)構(gòu)及數(shù)據(jù)庫設(shè)計。詳細設(shè)計:解決每個摸塊內(nèi)部算法和數(shù)據(jù)結(jié)構(gòu)。階段結(jié)果;產(chǎn)生出:系統(tǒng)設(shè)計說明書和模塊功能說明書。62⑵系統(tǒng)總體設(shè)計任務是:62⑶系統(tǒng)編程任務是:根據(jù)設(shè)計說明書中每個模塊的控制流程編出相應的程序。階段結(jié)果:軟件系統(tǒng)的源程序。63⑶系統(tǒng)編程任務是:63⑷系統(tǒng)測試任務是:檢查、發(fā)現(xiàn)程序中的錯誤,提高軟件的可靠性?;卮穑骸霸撓到y(tǒng)是否能實現(xiàn)規(guī)定的操作?”。分三個階段:模塊測試測試每個模塊的程序是否有錯;組裝測試測試模塊之間的接口是否正確;確認測試測試整個軟件系統(tǒng)是否滿足用戶功能、性能要求。測試三大基本技術(shù):邏輯覆蓋(白盒法)邊值分析(黑盒法)等價類劃分(黑盒法)階段結(jié)果:測試報告;說明測試數(shù)據(jù)的選擇,測試對象、測試結(jié)果是否符合預期結(jié)果等。64⑷系統(tǒng)測試任務是:檢查、發(fā)現(xiàn)程序中的錯誤,提高軟件的可靠性。⑸系統(tǒng)維護任務是:改正軟件系統(tǒng)在使用過程中發(fā)現(xiàn)的隱含錯誤,擴充在使用過程中的新的功能要求;目的:維護軟件系統(tǒng)的正常運行;階段結(jié)果:軟件系統(tǒng)的問題報告和軟件修改報告(記錄發(fā)現(xiàn)軟件錯誤的情況以及修改軟件的過程)。65⑸系統(tǒng)維護任務是:改正軟件系統(tǒng)在使用過程中發(fā)現(xiàn)的隱含錯誤,擴⒉瀑布模型
需求分析7%系統(tǒng)設(shè)計6%軟件編程7%軟件測試13%軟件維護67%用戶要求分析報告系統(tǒng)設(shè)計報告源程序測試報告更改要求UAMATMMPUTPUAMPA系統(tǒng)分析員M項目管理員P程序員T高級程序員U用戶66⒉瀑布模型需求分析7%系統(tǒng)設(shè)計6%軟件編程7%軟件測試13瀑布模型的特點瀑布模型具有順序性和依賴性,即后一階段的工作必須在前一階段的工作完成后才能開始。把邏輯設(shè)計與物理設(shè)計清楚地劃分開,是瀑布模型的重要指導思想。瀑布模型強調(diào)的是優(yōu)質(zhì),即每一步都循序漸進,及早消除隱患,從而保證軟件質(zhì)量。它的致命缺點在于只有做出精確的需求分析,才能取得預期的結(jié)果。由于各種客觀、主觀的原因,需求分析往往不很精確,常常給日后的開發(fā)帶來隱患。67瀑布模型的特點瀑布模型具有順序性和依賴性,即后一階段的工作必⒊原型模型——樣品模型原型模型的主要思想:先借用已有系統(tǒng)作為原型模型,通過“樣品”不斷改進,使得最后的產(chǎn)品就是用戶所需要的。原形模型的特點:(1)開發(fā)人員和用戶在“原型”上達成一致。這樣一來,可以減少設(shè)計中的錯誤和開發(fā)中的風險,也減少了對用戶培訓的時間,而提高了系統(tǒng)的實用、正確性以及用戶的滿意程度。(2)縮短了開發(fā)周期,加快了工程進度。(3)降低成本。原型模型的缺點:當告訴用戶,還必須重新生產(chǎn)該產(chǎn)品時,用戶是很難接受的。這往往給工程繼續(xù)開展帶來不利因素。
68⒊原型模型——樣品模型原型模型的主要思想:68快速原型模型
分析原型樣品模型設(shè)計編程測試使用修改與改進在系統(tǒng)分析與設(shè)計中,采用交互式,反復修改與不斷改進的方式進行。還有的把原型模式嵌套在瀑布模型中運用。69快速原型模型分析原型設(shè)計編程測試使用修改在系統(tǒng)分析與還有的⒋螺旋模型螺旋模型將工程劃分為4個主要活動:制定計劃、風險分析、實現(xiàn)工程和用戶評價。4個活動螺旋式地重復執(zhí)行,直到最終得到用戶認可的產(chǎn)品。制定計劃:確定軟件目標,選定實施方案,弄清項目開發(fā)限制條件。風險分析:分析可選方案,分析識別風險,研究解決化解風險的辦法。實現(xiàn)工程:實施軟件產(chǎn)品的開發(fā)。用戶評價:對當前工作結(jié)果進行評價,提出改進產(chǎn)品的建議。螺旋模型的缺點:很難讓用戶確信這種演化方法的結(jié)果是可以控制的.70⒋螺旋模型螺旋模型將工程劃分為4個主要活動:制定計劃、風險分⒌其他模型智能模型也稱基于知識的軟件開發(fā)模型,它與專家系統(tǒng)結(jié)合在一起。該模型應用基于規(guī)則的系統(tǒng),采用歸納和推理機制,幫助軟件人員完成開發(fā)工作,并使維護在系統(tǒng)規(guī)格說明一級進行。該模型在實施過程中要建立知識庫,將模型本身、軟件工程知識與特定領(lǐng)域的知識分別存人數(shù)據(jù)庫。以軟件工程知識為基礎(chǔ)的生成規(guī)則構(gòu)成的專家系統(tǒng)與含應用領(lǐng)域知識規(guī)則的其他專家系統(tǒng)相結(jié)合,構(gòu)成這一應用領(lǐng)域軟件的開發(fā)系統(tǒng)。面向?qū)ο笊嬷芷谀P推渲鲗枷胧牵涸谡麄€軟件開發(fā)過程中將面向?qū)ο蠹夹g(shù)貫穿于整個生存周期。當然,還要結(jié)合傳統(tǒng)開發(fā)模式中好的、已被無數(shù)成功開發(fā)活動證明是可行的經(jīng)驗和技術(shù)。71⒌其他模型智能模型也稱基于知識的軟件開發(fā)模型,它與專家系四、軟件工程管理軟件工程項目管理的任務軟件人員組織與管理軟件配置管理軟件知識產(chǎn)權(quán)保護72四、軟件工程管理軟件工程項目管理的任務72⒈軟件工程項目管理的任務軟件工程項目管理所涉及的范圍覆蓋了整個軟件工程過程。它管理的任務是:根據(jù)項目合同書的要求,制定項目計劃和工程進度安排、監(jiān)督和檢查項目實施過程、保證工程滿足要求的質(zhì)量標準、分析確定并排除風險、在規(guī)定的期限和預算成本內(nèi)完成項目。包括:
項目計劃和進度安排
項目追蹤和質(zhì)量保證成本估算風險分析73⒈軟件工程項目管理的任務軟件工程項目管理所涉及的范圍覆蓋了整①項目計劃和進度安排項目計劃要列出軟件開發(fā)要做的主要工作和任務清單,要回答“軟件工程項目做什么”。在工作和任務清單中要清楚地描述出:項目劃分的各個實施階段每個階段的工作重點和任務是什么完成本階段工作和任務的人力、資源需求,時間期限階段工作和任務的成果形式項目實施過程中對風險、疑難、其他不可預見因素等的處理機制各任務組及開發(fā)人員之間的組織、協(xié)調(diào)關(guān)系等。74①項目計劃和進度安排項目計劃要列出軟件開發(fā)要做的主要工作和任進度安排在制定項目進度安排時,主要依據(jù)是合同書和項目計劃。通常的做法是把復雜的整體項目分解成許多可以準確描述、度量、可獨立操作的相對簡單的任務,然后安排這些任務的執(zhí)行順序,確定每個任務的完成期限、開始時間和結(jié)束時間。開始需要考慮的主要問題是:項目可以支配的人力及資源項目的關(guān)鍵路徑生存周期各個階段工作量的劃分工程進展如何度量各個階段任務完成標志如何自然過渡到下一階段的任務等。75進度安排在制定項目進度安排時,主要依據(jù)是合同書和項目計劃。通②項目追蹤和質(zhì)量保證項目追蹤實施由項目管理人員負責。他們必須按進度安排表追蹤檢查每一個任務。如果任務實際完成日期滯后于進度安排,則管理人員可以行使職權(quán)范圍內(nèi)的權(quán)力采取各種補救措施以減少進度誤期所造成的影響。包括對資源重新定向,對任務重新安排,甚至可以修改交付日期以調(diào)整已經(jīng)暴露的問題。質(zhì)量保證在軟件生存周期中是至關(guān)重要的。人們在管理項目時往往只強調(diào)必須按期完成任務,必須遵循進度計劃,必須把成本控制在預算范圍內(nèi),卻忽視了在生存周期各個階段工作和任務應滿足規(guī)定的質(zhì)量標準。76②項目追蹤和質(zhì)量保證項目追蹤實施由項目管理人員負責。他們必須軟件質(zhì)量主要因素包括正確性在預定的系統(tǒng)環(huán)境下能正確地完成預期的功能;健壯性
在預定意外環(huán)境下系統(tǒng)能適當?shù)亟o予預期的響應;完整性對未經(jīng)授權(quán)的操作,系統(tǒng)能夠進行控制;可用性
系統(tǒng)在完成預定任務的功能時能夠圓滿地實現(xiàn);靈活性
系統(tǒng)應能滿足硬件環(huán)境升級和部分功能擴充需求;可理解性
用戶和維護人員應非常容易的理解和使用系統(tǒng);可維護性用戶按文檔資料應能排除常見系統(tǒng)故障,保持系統(tǒng)正常運行;可移植性
在廠家協(xié)助下,系統(tǒng)可以移植到其他硬件環(huán)境且費用可以接受;可重用性
系統(tǒng)全部或部分代碼可以在其他應用系統(tǒng)中被使用;可測試性
系統(tǒng)容易測試。77軟件質(zhì)量主要因素包括正確性在預定的系統(tǒng)環(huán)境下能正確地完成預保證軟件質(zhì)量的措施為了保證軟件質(zhì)量,在軟件開發(fā)過程中應采取下列措施:(1)審查(2)復查和管理復查(3)測試78保證軟件質(zhì)量的措施為了保證軟件質(zhì)量,在軟件開發(fā)過程中應采取下審查在軟件生存期各個階段結(jié)束之前,都要對該階段產(chǎn)生的結(jié)果和軟件配置文檔進行嚴格技術(shù)審查。審查過程包括:① 計劃:組織審查組、分發(fā)材料等;② 概況介紹:對大的項目,讓主程序員介紹概況;③ 準備:評審員閱讀材料,取得項目有關(guān)知識;④ 評審會:目的是發(fā)現(xiàn)和記錄錯誤;⑤ 返工:開發(fā)者修改已經(jīng)發(fā)現(xiàn)的問題;⑥ 復查:檢查返工是否真正解決了問題。79審查在軟件生存期各個階段結(jié)束之前,都要對該階段產(chǎn)生的結(jié)果和軟復查和管理復查復查是檢查已有的材料,以斷定本階段的工作是否能夠開始或繼續(xù)。每個階段開始時的復查是為了肯定前一個階段結(jié)束時確實進行了認真的復查,已經(jīng)具備了開始當前階段工作所必須的材料。管理復查是指:向開發(fā)組織或使用部門的管理人員提供有關(guān)項目的總體狀況以及進度等方面的情況,以便他們從管理的角度對開發(fā)工作進行審查。80復查和管理復查復查是檢查已有的材料,以斷定本階段的工作是否能測試測試是用測試用例執(zhí)行系統(tǒng),以檢查測試結(jié)果是否和預期結(jié)果一致。在測試過程中將產(chǎn)生以下文檔:①測試計劃:確定測試范圍、方法、測試用例和所需資源等;②測試過程:詳細描述與每個測試方案有關(guān)的測試步驟和數(shù)據(jù)(包括測試預期結(jié)果);③測試結(jié)果:把每次測試運行的結(jié)果歸入文檔,如果運行出錯,則應產(chǎn)生問題報告,并且要通過調(diào)試解決所發(fā)現(xiàn)的問題。81測試測試是用測試用例執(zhí)行系統(tǒng),以檢查測試結(jié)果是否和預期結(jié)果一③成本估算成本估算和成本管理是軟件項目管理的核心任務之一。在制定項目計劃時,就必須對項目需要的人力及其他資源、項目持續(xù)時間和項目成本做出估算。如果新項目和以往的項目類似,估算可以參考以前的成本費用?,F(xiàn)在已有一些用于軟件成本估算的技術(shù)可供借鑒。這些估算技術(shù)各有其優(yōu)缺點,但以下幾方面是共同的:事先建立軟件的工作范圍;以軟件度量(經(jīng)驗度量、相似工程類比的度量)為基礎(chǔ)做出估算把項目分解為可單獨進行估算的小塊82③成本估算成本估算和成本管理是軟件項目管理的核心任務之一。在成本估算方法就方法論而言,有兩種基本的成本估算方法:自頂向下和自底向上。自頂向下法是對整個工程項目的總開發(fā)時間和總工作量做出估算,然后將它們按階段、步驟和任務進行分配。自底向上法則正好相反,先分別估算各個任務所需要的工作量和開發(fā)時間,再相加,從而得到總的工作量和總的開發(fā)時間。這兩種方法都要求采用某種方法做出估算。有許多估算方法可以利用,大致劃分為三類:專家估算法、類推估算法、算式估算法。83成本估算方法就方法論而言,有兩種基本的成本估算方法:自頂向下成本估算方法簡介專家估算法
依靠一個或多個專家對項目做出估算,其精度主要取決于專家對估算項目的定性參數(shù)的了解和他們的經(jīng)驗。類推估算法
在自頂向下法中,類推估算法將估算項目的總體參數(shù)與類似項目進行直接比較得到結(jié)果;在自底向上法中,類推是在兩個具有相似條件的工作單元之間進行。算式估算法前兩種估算法的缺點在于:它們依靠的是帶有主觀猜測和盲目性的估算方法。算式估算法則是企圖避免主觀因素影響的一種方法。算式估算法有兩種基本類型:由理論導出的算法和由經(jīng)驗得出的算法。84成本估算方法簡介專家估算法依靠一個或多個專家對項目做出估④風險分析在開發(fā)新的軟件系統(tǒng)過程中,由于存在許多不確定因素,軟件開發(fā)失敗的風險是客觀存在的。因此,風險分析對于軟件項目管理是決定性的。風險分析實際上就是貫穿在軟件工程過程中的一系列風險管理步驟,其中包括:風險識別、風險估計、風險管理策略、風險解決和風險監(jiān)督等。85④風險分析在開發(fā)新的軟件系統(tǒng)過程中,由于存在許多不確定因素,主要風險因素①產(chǎn)品大小。實踐經(jīng)驗表明項目風險和產(chǎn)品的大小成正比。公認產(chǎn)品大小度量單位是以代碼行或功能點計。②技術(shù)相關(guān)。未曾使用過的新技術(shù)都存在風險。包括未使用過的新型硬件、支持軟件,缺乏標準與規(guī)范的非傳統(tǒng)的開發(fā)方法等。技術(shù)過時也是風險。技術(shù)風險一般難于改正。③開發(fā)環(huán)境。適用的開發(fā)工具不足、不可靠、使用不方便等因素,都會降低開發(fā)效率。④組織規(guī)模和人員經(jīng)驗。⑤客戶因素。表現(xiàn)在客戶需求經(jīng)常矛盾,不了解客戶的特殊需要,客戶不了解項目中采用的新技術(shù),且雙方又難于溝通等。86主要風險因素①產(chǎn)品大小。實踐經(jīng)驗表明項目風險和產(chǎn)品的大小成⒉軟件人員組織與管理人員是軟件工程項目最重要、也是最為活躍的資源因素。如何組織得更加合理,如何管理得更加有效,從而最大限度地發(fā)揮這一重要的資源潛力,對于成功地完成軟件工程項目至關(guān)重要。項目組的組織結(jié)構(gòu)
程序設(shè)計小組的組織形式
軟件項目的管理
87⒉軟件人員組織與管理人員是軟件工程項目最重要、也是最為活躍的⑴項目組的組織結(jié)構(gòu)開發(fā)組織采用什么形式,要針對軟件項目的特點來決定,同時也與參加人員的素質(zhì)有關(guān)。建立項目組織時要考慮這樣一些原則:①項目責任制度。項目必須實行項目負責人責任制。項目責任人對項目的完成負全部責任。②人員少而精。項目組成員之間的交流和協(xié)作是項目成敗的關(guān)鍵。人員少,具有便于組織管理、合理分工、減少通信等優(yōu)點;人員精,有利于互相激勵、發(fā)揮各自的特長優(yōu)勢,提高工作效率。88⑴項目組的組織結(jié)構(gòu)開發(fā)組織采用什么形式,要針對軟件項目的特點選擇組織結(jié)構(gòu)的模式(1)按課題劃分按課題劃分小組。小組成員自始至終參加所承擔課題的各項任務。(2)按職能劃分
按任務的工作階段劃分成若干個專業(yè)小組。例如,分別建立計劃組、需求分析組、設(shè)計組、實現(xiàn)組、測試組、質(zhì)量保證組、維護組等。要開發(fā)的軟件產(chǎn)品在每個專業(yè)小組完成階段加工后,沿工序流水線向下傳遞。這種流水線模式便于小組人員熟悉本組的工作,進而變成這方面的專家。但也有小組之間的通信接口增多,通信路徑延長等問題。(3)矩陣形模式這種模式實際上是以上兩種模式的結(jié)合。既設(shè)立項目經(jīng)理負責項目的管理,又成立一些專門組,每個成員參加其中一個組的實際工作。矩陣形結(jié)構(gòu)組織的優(yōu)點是:參加專門組的成員可在組內(nèi)交流其在各項目中取得的經(jīng)驗,這更有利于發(fā)揮專業(yè)人員的作用。而且各個項目有專人負責,有利于項目的完成。89選擇組織結(jié)構(gòu)的模式(1)按課題劃分按課題劃分小組。小組成⑵程序設(shè)計小組的組織形式一般情況下,程序設(shè)計人員是在一定程度上獨立自主地完成各自的任務。但這并不意味著互相之間沒有聯(lián)系。事實上,人員之間聯(lián)系得多少和聯(lián)系方式與生產(chǎn)效率直接相關(guān)。程序設(shè)計小組內(nèi)人數(shù)少,如2~3人,則人員之間的聯(lián)系比較簡單。但隨著人數(shù)的增加,相互之間的聯(lián)系是按非線性關(guān)系變得復雜起來。因此,小組內(nèi)部人員的組織形式對生產(chǎn)率也有很大的影響。90⑵程序設(shè)計小組的組織形式一般情況下,程序設(shè)計人員是在一定程度①主程序員組組由主程序員、程序員和后援工程師為核心組成。主程序員是經(jīng)驗豐富能力強的高級程序員,負責小組全部技術(shù)活動的計劃、協(xié)調(diào)與審查工作,還負責設(shè)計和實現(xiàn)項目中的關(guān)鍵部分。后援工程師協(xié)助和支持主程序員的工作,為主程序員提供咨詢,也做部分分析、設(shè)計和實現(xiàn)的工作,并在必要時代替主程序員工作,以便使項目能繼續(xù)進行。程序員負責項目的具體分析與開發(fā),以及文檔資料的編寫工作。根據(jù)系統(tǒng)規(guī)模大小及難易程度,小組還可以聘請一些專家、輔助人員、軟件資料員協(xié)助工作。主程序員組這種集中領(lǐng)導的組織形式突出了主程序員的領(lǐng)導作用,簡化了人際通信。這種組織形式能否取得好的效果,很大程度上取決于主程序員的技術(shù)水平和管理才能。美國的軟件產(chǎn)業(yè)中大多采用主程序員組的組織形式。91①主程序員組組由主程序員、程序員和后援工程師為核心組成。91②民主小組小組由經(jīng)驗豐富的技術(shù)人員組成。項目有關(guān)的所有重大決策都由全體成員集體討論、確定解決。這種組織形式強調(diào)發(fā)揮每個成員的積極性,要求每個成員充分發(fā)揮主動精神和協(xié)作精神。通過充分討論,也是在互相學習,因而在組內(nèi)形成一個良好合作的工作氣氛。但有時也會因此削弱個人的責任心和必要的權(quán)威作用。有人認為這種組織形式適合于研制時間長、開發(fā)難度大的項目。日本軟件產(chǎn)業(yè)中大多采用這種組織形式,取得較好的效果。這種組織形式在強調(diào)發(fā)揮每個成員的積極性的同時,也創(chuàng)造了一個尊重每個成員的良好工作環(huán)境。由于小組成員在工作上能夠很好地配合,因而做到了較長時間穩(wěn)定的人員合作關(guān)系。這樣的小組形式避免了美國因軟件人員頻繁流動對工作造成的嚴重干擾。92②民主小組小組由經(jīng)驗豐富的技術(shù)人員組成。項目有關(guān)的所有重大決③層次小組小組內(nèi)人員分為3級:組長、高級程序員和程序員。組長負責全組工作,包括任務分配、技術(shù)評審和復查、掌握工作量和參加技術(shù)活動。組長直接領(lǐng)導2至3名高級程序員。高級程序員通過基層小組,管理若干個程序員。這種組織結(jié)構(gòu)只允許必要的人際通信。它比較適合項目本身就是層次結(jié)構(gòu)狀的課題以及大型軟件項目的開發(fā)。93③層次小組小組內(nèi)人員分為3級:組長、高級程序員和程序員。93⑶軟件項目的管理
軟件項目管理包括項目指導和項目檢驗。指導的目的是在軟件項目的實施過程中,動員和促進工作人員積極完成所分配的任務。檢驗是軟件管理的最后一個方面。它是對照計劃檢查執(zhí)行情況的過程,同時也是對照軟件工程標準檢查實施情況的過程。在發(fā)現(xiàn)項目的實施與計劃或標準有較大的偏離時,應采取措施加以解決。管理內(nèi)容包括:指導工作的要點檢驗管理的要點檢驗管理的工作范圍94⑶軟件項目的管理軟件項目管理包括項目指導和項目檢驗。94指導工作的要點①鼓勵。恰當而且及時地鼓勵是非常重要的。要建立健全競爭和激勵機制,它可使人們充滿信心,勇于繼續(xù)克服困難,愿意努力進一步提高工作效率,迎接新任務的挑戰(zhàn)。②引導。通常,人們愿意追隨那些能夠體諒個人要求或?qū)嶋H困難的領(lǐng)導。高明的領(lǐng)導人應能體察到這些,并能巧妙地把個人的要求和目標與項目工作的整體目標結(jié)合起來,至少應能做到在一定程度上的協(xié)調(diào),或在一個工作周期內(nèi)一致。要制定相對優(yōu)惠的“留人”政策,穩(wěn)定骨干隊伍。從風險分析中可知,大幅度的人員調(diào)整是非常有害的,即使是人員的臨時觀念也會使項目付出無形的代價,因而蒙受無謂的損失。95指導工作的要點①鼓勵。恰當而且及時地鼓勵是非常重要的。要建檢驗管理的要點①重大偏離。在軟件項目實施過程中,必須注意:工作與計劃之間、任務與標準之間的重大偏離。遇到有這種情況時應及時向管理部門報告并采取相應的措施給予適當?shù)奶幹?。②選定標準。檢驗管理需要事先確定應當遵循的標準,使得軟件項目的工作進展可以用某些客觀、精確且有實際意義的標準加以衡量。③特殊情況。管理人員必須注意軟件項目實施的一些特殊情況,認真分析其中的一些特殊問題,加以解決。96檢驗管理的要點①重大偏離。在軟件項目實施過程中,必須注意:工檢驗管理的工作范圍檢驗管理可能涉及到以下幾個方面:①質(zhì)量管理。包括明確度量軟件質(zhì)量的因素和準則,決定質(zhì)量管理的方法和工具,以及實施質(zhì)量管理的組織形式。②進度管理。檢驗進度計劃執(zhí)行的情況。③成本管理。度量并控制軟件項目的開銷。④文檔管理。檢驗文檔編寫是否符合要求。⑤配置管理。檢驗、控制軟件配置項的變更。97檢驗管理的工作范圍檢驗管理可能涉及到以下幾個方面:97⒊軟件配置管理軟件配置管理是人們在軟件工程實踐過程中總結(jié)出的一套管理辦法和原則。軟件配置管理將伴隨整個軟件生存周期。軟件配置管理和基線配置管理的任務98⒊軟件配置管理軟件配置管理是人們在軟件工程實踐過程中總結(jié)出⑴軟件配置管理和基線什么是軟件配置項?一般認為:軟件生存周期各個階段活動的產(chǎn)物經(jīng)審批后即可稱之為軟件配置項。軟件配置項包括:①與合同、過程、計劃和產(chǎn)品有關(guān)的文檔和資料;②源代碼、目標代碼和可執(zhí)行代碼;③相關(guān)產(chǎn)品,包括軟件工具、庫內(nèi)的可重用軟件、外購軟件及顧客提供的軟件等。99⑴軟件配置管理和基線什么是軟件配置項?一般認為:軟件生存周期基線什么是基線?第一次提出的軟件配置項就構(gòu)成基線配置項?;€分類列表如下:系統(tǒng)功能說明。系統(tǒng)模型,項目計劃,進度安排;
軟件需求規(guī)格說明。包括:圖形分析模型、過程、原型、數(shù)學規(guī)格說明;設(shè)計規(guī)格說明。包括:數(shù)據(jù)設(shè)計、體系結(jié)構(gòu)設(shè)計、界面設(shè)計、對象的描述等;驗收規(guī)格說明;測試規(guī)格說明。包括:測試計劃、測試用例、測試預期結(jié)果、測試記錄等;數(shù)據(jù)庫描述。包括:數(shù)據(jù)模式、記錄結(jié)構(gòu)、數(shù)據(jù)項描述;模塊規(guī)格說明。包括:模塊功能、模塊算法、模塊接口等描述;運行系統(tǒng)。包括:模塊代碼、鏈接模塊、數(shù)據(jù)庫、支持及工具程序等;用戶文檔。包括:安裝說明、操作說明、用戶手冊等;培訓計劃;維護文檔,包括:故障報告、維護要求、更改記錄等;項目采用的有關(guān)標準和規(guī)程。100基線什么是基線?第一次提出的軟件配置項就構(gòu)成基線配置項?;€⑵配置管理的任務①標識軟件配置項②版本控制③變更管理④審計101⑵配置管理的任務101①標識軟件配置項大型軟件工程項目開發(fā)過程中可能會產(chǎn)生許多技術(shù)文檔。隨著軟件系統(tǒng)的變更,有關(guān)文檔也將發(fā)生變化。因此,對軟件配置項的管理是一個動態(tài)管理的過程。為了便于管理,首先要便于檢索。而要檢索就必須對所有的配置項進行標識、命名。標識軟件配置項是配置項管理的重要基礎(chǔ)工作。所有的軟件配置項均可以當作對象來標識。例如,基本對象可以是一段需求規(guī)格說明、一個模塊的源代碼清單、一組測試用例等。將這些正文單元命名后作為基本對象,再將基本對象按內(nèi)部邏輯進行組合,就形成復合對象。復合對象表示的是一本設(shè)計規(guī)格說明書、一個完整的源程序清單。102①標識軟件配置項大型軟件工程項目開發(fā)過程中可能會產(chǎn)生許多技②版本控制版本更新是軟件生存期中的自然現(xiàn)象。軟件系統(tǒng)每做一次修改,就應該變更一次版本。不同版本反映的是不同時期、不同硬件環(huán)境、不同用戶需求的該軟件系統(tǒng)的特定功能。為了保持該軟件系統(tǒng)一脈相承的完整性,每一個軟件配置項修改后的以前版本都要保留。版本更新就好像一棵生長的樹。所有版本均按版本模型(樹形結(jié)構(gòu))存放于倉儲庫中。為節(jié)省倉儲庫的存儲空間,版本存放采用增量法,即只存放新版本與舊版本不同部分的內(nèi)容。103②版本控制版本更新是軟件生存期中的自然現(xiàn)象。軟件系統(tǒng)每做一次③變更管理有變更的需求就要有變更的控制和管理。它的主要任務包括:分析變更的必要性和合理性,確定是否實施變更;記錄變更信息,填寫變更控制單;
做出更改,并交上級審批;修改相應的軟件配置項(基線),確立新的版本;評審后發(fā)布新版本。104③變更管理有變更的需求就要有變更的控制和管理。它的主要任務④審計軟件配置項的更改反映了用戶提高、擴充軟件系統(tǒng)功能和性能的要求以及軟件開發(fā)人員對軟件需求定義的認識的提高。如何保證變更需求和變更實施結(jié)果的一致性?如何保證任何一個變更能順利正確地完成?這正是審計的作用。為保證軟件配置項變更的合理性和嚴肅性,必須實行嚴格的審計控制。一般采用兩種方法進行審計:正式技術(shù)評審著重檢查對軟件配置項的變更的技術(shù)正確性。綜合考慮此軟件配置項的變更對其它配置項乃至整個軟件系統(tǒng)的潛在影響和作用。軟件配置審核是審核變更的落實情況;變更修改是否完成?變更手續(xù)是否完備?變更修改有無違反標準?105④審計軟件配置項的更改反映了用戶提高、擴充軟件系統(tǒng)功能和性⒋軟件知識產(chǎn)權(quán)保護計算機軟件是人類知識、智慧和創(chuàng)造性勞動的結(jié)晶,軟件產(chǎn)業(yè)是知識和資金密集型的新興產(chǎn)業(yè)。由于它具有開發(fā)工作量大、周期長,而生產(chǎn)(復制)容易、費用低等特點,因此,長期以來,軟件的知識產(chǎn)權(quán)得不到尊重,軟件的真正價值得不到承認,靠非法竊取他人軟件而牟取商業(yè)利益成了信息產(chǎn)業(yè)中投機者的一條捷徑。因此,軟件產(chǎn)權(quán)保護已成為急待解決的一個社會問題,是我國軟件產(chǎn)業(yè)健康發(fā)展的前提。1967年在瑞典斯得哥而摩成立了世界知識產(chǎn)權(quán)組織。1980年我國正式加入該組織。1990年9月我國頒布了《著作權(quán)法》,確定計算機軟件為保護的對象。1991年6月由國務院正式頒布了我國《計算機軟件保護條例》。應該學習并掌握必要的軟件保護法律知識。一方面要尊重別人的智力勞動成果,不應任意侵犯他人的軟件版權(quán);另一方面要采取切實的保護措施保護自己以及本單位開發(fā)的軟件成果。106⒋軟件知識產(chǎn)權(quán)保護計算機軟件是人類知識、智慧和創(chuàng)造性勞動的結(jié)
⑴軟件知識產(chǎn)權(quán)的法律保護
知識產(chǎn)權(quán)又稱為智力成果產(chǎn)權(quán)和智慧財產(chǎn)權(quán),是指對智力活動所創(chuàng)造的精神財富所享有的權(quán)利。知識產(chǎn)權(quán)分為:工業(yè)產(chǎn)權(quán)和版權(quán);前者主要包括專利權(quán)、商標專有權(quán)和制止不正當競爭權(quán);后者專指計算機軟件。知識產(chǎn)權(quán)的主要特點是:①無形性。是指其保護對象是無形的。知識產(chǎn)權(quán)的權(quán)利人只有當其主張自己權(quán)利的時候,才能確認為權(quán)利人。②專有性。指未經(jīng)知識產(chǎn)權(quán)人的同意,除法律有規(guī)定的情況外,他人不得占有或使用該項智力成果。③地域性。指法律保護知識產(chǎn)權(quán)的有效地區(qū)范圍。任何國家法律所確認的知識產(chǎn)權(quán),只在其本國領(lǐng)域內(nèi)有效,除非該國與他國簽訂有雙邊協(xié)定或該國參加了有關(guān)知識產(chǎn)權(quán)保護的國際公約。④時間性。指法律保護知識產(chǎn)權(quán)的有效期限,期限屆滿即喪失效力。這是為限制權(quán)利人不致因自己對其智力成果的壟斷期過長而阻礙社會經(jīng)濟、文化和科學事業(yè)的發(fā)展。107⑴軟件知識產(chǎn)權(quán)的法律保護知識產(chǎn)權(quán)又稱為智力成果產(chǎn)權(quán)和⑵計算機軟件是著作權(quán)保護的客體①軟件著作權(quán)保護的基本條件
對計算機軟件來說,著作權(quán)法并不要求軟件達到某個較高的技術(shù)水平,只要是開發(fā)者獨立地自行開發(fā)的軟件,即可享有著作權(quán)。一個僅處于作者構(gòu)思過程中、未表現(xiàn)出來的軟件,不享有著作權(quán)。一個軟件必須在其創(chuàng)作出來,并固定在某種有形物體(如紙、磁帶、磁盤)上面,能為他人感知、傳播、復制的情況下,才能享有著作權(quán)保護。
②軟件著作權(quán)的特征
計算機軟件的體現(xiàn)形式是程序和文件。文件是受著作權(quán)法保護的(包括:人無法識別的目標代碼)形式的程序、固化在只讀存儲器(ROM)中的程序等)。③軟件著作權(quán)的保護范圍
著作權(quán)法的基本原則是:只保護作品的表現(xiàn),而不保護作品中所體現(xiàn)的思想、概念。因此,在軟件中哪些是思想、概念?哪些是表現(xiàn)?要確定著作權(quán)保護客體的范圍是比較困難的。目前人們比較一致的認為:軟件的功能目標應用屬于思想、概念,不受著作權(quán)法的保護;而軟件的程序代碼則是表現(xiàn),應屬于著作權(quán)保護的客體之內(nèi)。108⑵計算機軟件是著作權(quán)保護的客體①軟件著作權(quán)保護的基本條件對⑶軟件著作權(quán)人享有的專有權(quán)力
根據(jù)我國著作權(quán)法的規(guī)定,作品著作人(或稱版權(quán)人)享有5項專有權(quán)力:①發(fā)表權(quán)。決定作品是否公布于眾的權(quán)力。②署名權(quán)。表明作者身份,在作品上有署名權(quán)。③修改權(quán)。修改或授權(quán)他人修改作品的權(quán)力。④保護作品完整權(quán)。保護作品不受篡改的權(quán)力。⑤使用權(quán)和獲得報酬權(quán)。以復制、表演、播放、展覽、發(fā)行、攝制電影、電視、錄像或改編、翻譯、注釋、編輯等方式使用作品的權(quán)力,以及許可他人以上述方式作為作品,并由此獲得報酬的權(quán)力。109⑶軟件著作權(quán)人享有的專有權(quán)力109⑷軟件著作權(quán)的登記《計算機軟件保護條例》中對辦理軟件著作權(quán)登記有以下基本要求:①凡完成開發(fā)一年之內(nèi)的軟件均可向軟件登記機構(gòu)辦理登記申請。②凡已在軟件登記機構(gòu)辦理登記的軟件,在其專有權(quán)力發(fā)生轉(zhuǎn)讓活動時,受讓方應在轉(zhuǎn)讓合同正式簽訂后的兩個月之內(nèi)向軟件登記機構(gòu)備案。③當國籍或定居地為中國的著作權(quán)人或其受讓者,在中國境內(nèi)開發(fā)的計算機軟件的專有權(quán)力要向境外許可或轉(zhuǎn)讓時,許可方或轉(zhuǎn)讓方應首先報請國務院有關(guān)主管部門批準,并向軟件登記機構(gòu)備案。110⑷軟件著作權(quán)的登記《計算機軟件保護條例》中對辦理軟件著作權(quán)登⑸辦理軟件著作權(quán)登記的基本要求:①辦理軟件著作權(quán)和軟件著作轉(zhuǎn)讓或許可的登記、備案手續(xù),應當?shù)椒ǘǖ幕驀抑付ǖ能浖怯洐C構(gòu)辦理。②辦理上述登記手續(xù)應當是軟件專有權(quán)人(包括公民、法人或非法人組織)或者是軟件專有權(quán)人委托的代理人。但代理人須向軟件登記管理機構(gòu)出示寫明委托權(quán)限的委托書。③通常一個獨立的軟件,只能辦理一次著作權(quán)的登記。若軟件是由多個獨立的軟件組成的,也可以分別辦理軟件著作權(quán)的登記手續(xù)。④辦理軟件著作權(quán)登記均應以書面的形式進行。在軟件申請書(登記表)上應有申請者或代理人的簽章。⑤辦理軟件著作權(quán)登記時,申請者應提交該軟件具有獨創(chuàng)性事實和轉(zhuǎn)讓、許可證明等有關(guān)鑒別材料。⑥對于軟件登記申請中出現(xiàn)的有關(guān)問題和遺漏,軟件申請者應積極配合軟件登記機構(gòu)予以糾正。⑦所辦理的軟件登記手續(xù),均應在法定的期限內(nèi)完成,否則將失去機會。⑧辦理登記手續(xù)時,應交納法定的手續(xù)費。111⑸辦理軟件著作權(quán)登記的基本要求:①辦理軟件著作權(quán)和軟件著作思考題第9章習題:1~24112思考題第9章習題:112第10周上機安排班級日期時間機房電氣93星期一14~18:00302電氣92星期一14~18:00302電氣91星期一18~22:00302電氣94星期四18~22:00302電氣95星期五18~22:00302應化01星期四18~22:00302應物91星期五18~22:00302113第10周上機安排班級日期結(jié)束語歡迎參加到中心網(wǎng)站《軟件基礎(chǔ)》課程的學習討論中來。中心網(wǎng)址:
http://課件下載地址:
ftp://我的E-mail地址:
LZQ_2668634@263.net謝謝!114結(jié)束語歡迎參加到中心網(wǎng)站《軟件基礎(chǔ)》課程的學習討論中來。11計算機軟件基礎(chǔ)
Thesoftwarebasicofcomputer
主講:劉志強第15單元軟件工程概論115計算機軟件基礎(chǔ)
Thesoftwarebasicof教學目標了解軟件工程的基本概念掌握軟件工程的基本理論、技術(shù)和方法,運用于軟件的開發(fā)和生產(chǎn)116教學目標了解軟件工程的基本概念2教學內(nèi)容了解軟件、軟件工程的基本概念軟件的特征軟件危機、軟件工程瀑布模型、原型模型軟件生存周期中各個階段的任務、實施方法及步驟117教學內(nèi)容了解軟件、軟件工程的基本概念3本單元涉及內(nèi)容概述軟件的基本概念軟件的發(fā)展和軟件危機第9章軟件工程9.1軟件工程9.2軟件生存周期9.3軟件工程管理118本單元涉及內(nèi)容概述4一、基本概念軟件計算機系統(tǒng)中所有程序、數(shù)據(jù)結(jié)構(gòu)及有關(guān)文檔資料的總稱。軟件是計算機技術(shù)和人類智慧高度結(jié)合的產(chǎn)物,軟件開發(fā)不是簡單、機械地重復生產(chǎn),而是創(chuàng)造性的腦力勞動。軟件的作用軟件是今后信息產(chǎn)業(yè)發(fā)展的推動力。美國最近在24項高科技領(lǐng)域中調(diào)查結(jié)果表明,其中18項與軟件有關(guān)。119一、基本概念軟件計算機系統(tǒng)中所有程序、數(shù)據(jù)結(jié)構(gòu)及有關(guān)文檔資軟件工程學的體系結(jié)構(gòu)
軟件工程學軟件開發(fā)技術(shù)軟件開發(fā)方法學軟件工具軟件工程環(huán)境軟件工程管理軟件管理學軟件經(jīng)濟學120軟件工程學的體系結(jié)構(gòu)軟件工程學軟件開發(fā)技術(shù)軟件開發(fā)方法學軟問題的由來軟件內(nèi)在規(guī)律。任何事物有它自己的客觀規(guī)律和發(fā)展軌跡。只有認識了它,才能駕馭它。軟件地位及作用。軟件是計算機系統(tǒng)中重要的組成部分。但在早期它并沒有引起業(yè)界的重視。隨著計算機技術(shù)的發(fā)展,隨著“軟件危機”的出現(xiàn),以及軟件危機對社會危害的增大,軟件的地位和作用也越來越重要。軟件工程學。業(yè)界人士不得不設(shè)置專門的學科——軟件工程學來研究軟件開發(fā)、生產(chǎn)的內(nèi)在規(guī)律,用于指導現(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)方式不同:實用、可靠、可操作性;可維護性強方便用戶不會折舊、損壞、老化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)只是簡單的復制、安裝和培訓。126成本構(gòu)成不同12%需求率4%生產(chǎn)率開發(fā)人員成本構(gòu)成不同:軟件產(chǎn)品不存在同類零件替換硬件可更換零部件。當硬件產(chǎn)品中某個部件損壞后,可以用相同的備用部件更換,使硬件系統(tǒng)恢復正常工作。軟件不能更換零部件。而軟件產(chǎn)品卻沒有相同的備用部件可言,因為軟件出現(xiàn)的每一個故障,要么是由于設(shè)計考慮不周造成的,要么是編程錯誤造成的。由于軟件無備用部件可供更換,因而軟件維護比硬件維護要復雜得多,成本也高得多。127軟件產(chǎn)品不存在同類零件替換硬件可更換零部件。當硬件產(chǎn)品中某個軟件產(chǎn)品的靜態(tài)和動態(tài)屬性軟件是由程序和相關(guān)文檔資料組成的。程序是具有雙重屬性的:交流。它是求解客觀問題的邏輯描述,是供閱讀和交流的,它的表示是靜態(tài)的;執(zhí)行。程序最終是通過運行去執(zhí)行特定的操作和數(shù)據(jù)處理,它又具有極其復雜和豐富內(nèi)涵的動態(tài)屬性。程序是否正確的有雙重標準:靜態(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)率大幅提高如今,計算機的發(fā)展已進入一個新的歷史階段;硬件產(chǎn)品已系列化、標準化,“即插即用”。硬件產(chǎn)品的生產(chǎn)可以采用最高精尖的現(xiàn)代化工具和手段、自動成批生產(chǎn)。生產(chǎn)效率幾百萬倍的提高。生產(chǎn)能力過剩。返回129硬件生產(chǎn)率大幅提高如今,計算機的發(fā)展已進入一個新的歷史階段;軟件生產(chǎn)率很低伴隨計算機的普及,整個社會對計算機應用的需求越來越大。但軟件的生產(chǎn)卻還沿用“手工作坊”的生產(chǎn)方式,人工編程生產(chǎn)。生產(chǎn)效率僅提高了幾倍。生產(chǎn)能力極其低下。返回130軟件生產(chǎn)率很低伴隨計算機的普及,整個社會對計算機應用的需求越硬、軟件供需失衡社會大量需求,生產(chǎn)成本高,生產(chǎn)過程控制復雜,生產(chǎn)效率低等等因素構(gòu)成軟件生產(chǎn)的惡性循環(huán)。由此產(chǎn)生“軟件危機”。返回131硬、軟件供需失衡社會大量需求,生產(chǎn)成本高,生產(chǎn)過程控制復雜,矛盾引發(fā)“軟件危機”軟件危機是指在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。為了研究、解決軟件危機,誕生了一門新興學科——軟件工程學。它把軟件作為工程對象,從技術(shù)措施和組織管理兩個方面來研究、解決軟件危機。132矛盾引發(fā)“軟件危機”軟件危機是指在計算機軟件的開發(fā)和維護過程軟件危機的具體體現(xiàn)(1)軟件開發(fā)進度難以預測(2)軟件開發(fā)成本難以控制(3)用戶對軟件功能難以滿足(4)軟件產(chǎn)品質(zhì)量無法保證(5)軟件產(chǎn)品難以維護(6)軟件缺少文檔資料133軟件危機的具體體現(xiàn)(1)軟件開發(fā)進度難以預測19(1)軟件開發(fā)進度難以預測拖延工期幾個月甚至幾年的現(xiàn)象并不罕見,這種現(xiàn)象降低了軟件開發(fā)組織的信譽。以丹佛新國際機場為例。該機場規(guī)模是曼哈頓機場的兩倍,寬為希思機場的10倍,可以全天侯同時起降三架噴氣式客機;投資1.93億美元建立了一個地下行李傳送系統(tǒng),總長21英里,有4,000臺遙控車,可按不同線路在20家不同的航空公司柜臺、登機門和行李領(lǐng)取處之間發(fā)送和傳遞行李;支持該系統(tǒng)的是5,000個電子眼、400臺無線電接受機、56臺條形碼掃描儀和100臺計算機。按原定計劃要在1993年萬圣節(jié)前啟用,但一直到1994年6月,機場的計劃者還無法預測行李系統(tǒng)何時能達到可使機場開放的穩(wěn)定程度。134(1)軟件開發(fā)進度難以預測拖延工期幾個月甚至幾年的現(xiàn)象并不罕(2)軟件開發(fā)成本難以控制投資一再追加,令人難于置信。往往是實際成本比預算成本高出一個數(shù)量級。而為了趕進度和節(jié)約成本所采取的一些權(quán)宜之計又往往損害了軟件產(chǎn)品的質(zhì)量,從而不可避免地會引起用戶的不滿。135(2)軟件開發(fā)成本難以控制投資一再追加,令人難于置信。往往是(3)用戶對產(chǎn)品功能難以滿足開發(fā)人員和用戶之間很難溝通、矛盾很難統(tǒng)一。往往是軟件開發(fā)人員不能真正了解用戶的需求,而用戶又不了解計算機求解問題的模式和能力,雙方無法用共同熟悉的語言進行交流和描述。在雙方互不充分了解的情況下,就倉促上陣設(shè)計系統(tǒng)、匆忙著手編寫程序,這種“閉門造車”的開發(fā)方式必然導致最終的產(chǎn)品不符合用戶的實際需要。136(3)用戶對產(chǎn)品功能難以滿足開發(fā)人員和用戶之間很難溝通、矛盾(4)軟件產(chǎn)品質(zhì)量無法保證系統(tǒng)中的錯誤難以消除。軟件是邏輯產(chǎn)品,質(zhì)量問題很難以統(tǒng)一的標準度量,因而造成質(zhì)量控制困難。軟件產(chǎn)品并不是沒有錯誤,而是盲目檢測很難發(fā)現(xiàn)錯誤,而隱藏下來的錯誤往往是造成重大事故的隱患。137(4)軟件產(chǎn)品質(zhì)量無法保證系統(tǒng)中的錯誤難以消除。軟件是邏輯產(chǎn)(5)軟件產(chǎn)品難以維護軟件產(chǎn)品本質(zhì)上是開發(fā)人員的代碼化的邏輯思維活動,他人難以替代。除非是開發(fā)者本人,否則很難及時檢測、排除系統(tǒng)故障。為使系統(tǒng)適應新的硬件環(huán)境,或根據(jù)用戶的需要在原系統(tǒng)中增加一些新的功能,又有可能增加系統(tǒng)中的錯誤。138(5)軟件產(chǎn)品難以維護軟件產(chǎn)品本質(zhì)上是開發(fā)人員的代碼化的邏輯(6)軟件缺少適當?shù)奈臋n資料文檔資料是軟件必不可少的重要組成部分。實際上,軟件的文檔資料是開發(fā)組織和用戶的之間權(quán)利和義務的合同書,是系統(tǒng)管理者、總體設(shè)計者向開發(fā)人員下達的任務書,是系統(tǒng)維護人員的技術(shù)指導手冊,是用戶的操作說明書。缺乏必要的文檔資料或者文檔資料不合格,將給軟件開發(fā)和維護帶來許多嚴重的困難和問題。139(6)軟件缺少適當?shù)奈臋n資料文檔資料是軟件必不可少的重要組成軟件生產(chǎn)隨規(guī)模增大而復雜度增大以美國宇航局的軟件系統(tǒng)為例:1963年水星計劃系統(tǒng)200萬條指令1967年雙子星座計劃系統(tǒng)400萬條指令1973年阿波羅計劃系統(tǒng)1000萬條指令1979年哥倫比亞航天飛機系統(tǒng)4000萬條指令假設(shè)1個人一年生產(chǎn)一萬條有效指令,那么是否4000人生產(chǎn)一年,或400人生產(chǎn)10年就能完成任務嗎?答案是否定的。一萬條指令的復雜度決不僅僅是100條指令復雜度的100倍。140軟件生產(chǎn)隨規(guī)模增大而復雜度增大以美國宇航局的軟件系統(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軟件危機產(chǎn)生的原因產(chǎn)生軟件危機有兩個方面的原因:內(nèi)部因素。與軟件本身的特點有關(guān)。內(nèi)在因素是客觀的存在,只能因勢利導加以解決。外部因素。與軟件開發(fā)和維護的技術(shù)方法有關(guān)。外部因素是可以完善、提高的。142軟件危機產(chǎn)生的原
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中英文設(shè)備維修合同范本(2024版)
- 2025年苗圃地租賃合同模板(含知識產(chǎn)權(quán)保護條款)
- 2025年度二手房交易房地產(chǎn)評估機構(gòu)選擇合同3篇
- 二零二五年度醫(yī)療設(shè)備銷售傭金分紅合同范本3篇
- 二零二五版電子商務知識產(chǎn)權(quán)保護合同簽署4篇
- 二手房購買定金協(xié)議:2024年標準版版B版
- 二零二五版網(wǎng)絡(luò)信息安全技術(shù)服務合同范本2篇
- 2025版新產(chǎn)品發(fā)布宣傳片制作服務協(xié)議2篇
- 2025年度個人之間房屋買賣合同爭議解決條款范本2篇
- 二零二五版月子中心嬰兒早教及產(chǎn)后恢復服務合同2篇
- 光伏自發(fā)自用項目年用電清單和消納計算表
- 量子計算在醫(yī)學圖像處理中的潛力
- 阿里商旅整體差旅解決方案
- 浙江天臺歷史文化名城保護規(guī)劃說明書
- 邏輯思維訓練500題
- 第八講 發(fā)展全過程人民民主PPT習概論2023優(yōu)化版教學課件
- 實體瘤療效評價標準RECIST-1.1版中文
- 企業(yè)新春茶話會PPT模板
- GB/T 19185-2008交流線路帶電作業(yè)安全距離計算方法
- DIC診治新進展課件
- 公路工程施工現(xiàn)場安全檢查手冊
評論
0/150
提交評論