版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1軟件工程導(dǎo)論〔第6版〕
張海藩編著課程簡(jiǎn)介軟件工程是支撐軟件產(chǎn)業(yè)的新學(xué)科,主要研究軟件結(jié)構(gòu)、軟件設(shè)計(jì)與維護(hù)方法、軟件工具與環(huán)境、軟件工程標(biāo)準(zhǔn)和標(biāo)準(zhǔn)、軟件開(kāi)發(fā)技術(shù)與管理技術(shù)的相關(guān)理論。本課程只能作為軟件工程的入門,介紹一些根本概念、方法和根本原理。包括軟件工程概論,軟件方案,軟件需求分析,軟件總體設(shè)計(jì),軟件詳細(xì)設(shè)計(jì),軟件編碼,軟件測(cè)試,軟件維護(hù)以及面向?qū)ο蠓椒▽W(xué)概述。初步具備開(kāi)發(fā)小型系統(tǒng)的能力。軟件工程課程說(shuō)明軟件工程涉及:軟件生命周期(定義、設(shè)計(jì)、編碼、測(cè)試、發(fā)布、維護(hù)、淘汰)各階段的任務(wù)與內(nèi)容軟件開(kāi)發(fā)生產(chǎn)中有關(guān)工藝、模式、方法和工具的管理與技術(shù)問(wèn)題軟件工程不涉及:程序語(yǔ)言的內(nèi)容軟件編程軟件工程著力于解決軟件危機(jī),即軟件經(jīng)常不能按時(shí)按質(zhì)地交付使用軟件工程教育的定位我國(guó)軟件工程的專業(yè)教育與軟件人才鏈之間的關(guān)系可描述為如以下圖:軟件開(kāi)發(fā)工程師架構(gòu)設(shè)計(jì)師產(chǎn)品經(jīng)理工程管理者系統(tǒng)分析師系統(tǒng)設(shè)計(jì)師程序員研究生教育本科教育大專教育中專教育二、教學(xué)與考查方法1.使用計(jì)算機(jī)輔助教學(xué);2.理論聯(lián)系實(shí)際,結(jié)合實(shí)際軟件工程的例子教學(xué);3.平時(shí)〔作業(yè)、考勤〕10%,大作業(yè)30%,考試60%。4.強(qiáng)調(diào)實(shí)際軟件工程能力的培養(yǎng),每個(gè)學(xué)生必須參加一個(gè)軟件工程小組(每組3-4人〕,完成一個(gè)實(shí)際軟件工程案例實(shí)習(xí),并撰寫軟件開(kāi)發(fā)文檔;每組人員的角色可為:1.工程經(jīng)理2.系統(tǒng)分析人員3.系統(tǒng)設(shè)計(jì)人員4.系統(tǒng)實(shí)施人員5.系統(tǒng)測(cè)試人員
體驗(yàn)軟件工程各階段的主要工作,特別注意吸取教訓(xùn);
學(xué)會(huì)與他人合作,培養(yǎng)團(tuán)隊(duì)精神,單干戶將得不到成績(jī)。目的財(cái)富可以通過(guò)辛勤勞動(dòng)獲取,也可能由于喜中彩票大獎(jiǎng)獲得。但知識(shí)卻必須是通過(guò)一點(diǎn)一滴努力學(xué)習(xí)逐漸積累珍惜每一天,每一節(jié)課,每一分鐘參考書(shū)目8根本要求了解國(guó)外軟件工程開(kāi)展的技術(shù)和趨勢(shì)理解軟件工程的思想和方法掌握軟件開(kāi)發(fā)方法和工具學(xué)會(huì)按照工程化的方法開(kāi)發(fā)和維護(hù)軟件具有閱讀軟件工程方面資料的能力為實(shí)踐及以后的軟件開(kāi)發(fā)打根底總目錄第1章軟件工程學(xué)概述 第2章可行性研究 第3章需求分析 第4章形式化說(shuō)明技術(shù) 第5章總體設(shè)計(jì) 第6章詳細(xì)設(shè)計(jì) 第7章實(shí)現(xiàn)第8章維護(hù) 第9章面向?qū)ο蠓椒▽W(xué)引論 第10章面向?qū)ο蠓治? 第11章面向?qū)ο笤O(shè)計(jì) 第12章面向?qū)ο髮?shí)現(xiàn) 第13章軟件工程管理總目錄第1章軟件工程學(xué)概述0.1軟件的定義0.2軟件的特點(diǎn)0.3軟件的分類1.1軟件危機(jī)1.2軟件工程1.3軟件生命周期1.4軟件過(guò)程1.5小結(jié)
0.1軟件的定義1、軟件的開(kāi)展〔1〕、程序設(shè)計(jì)階段〔60年代中之前〕.特點(diǎn):程序規(guī)模小,編寫者與使用者往往是同一人,沒(méi)有系統(tǒng)的方法可循,沒(méi)有設(shè)計(jì)文檔資料。生產(chǎn)方式是:個(gè)體手工方式。軟件=程序〔2〕、程序系統(tǒng)階段〔60‘中---70’中)特點(diǎn):程序規(guī)模大,這個(gè)時(shí)期引入多道程序設(shè)計(jì)、多用戶系統(tǒng)、數(shù)據(jù)庫(kù)管理系統(tǒng),軟件產(chǎn)品大量銷售,軟件數(shù)量急增。生產(chǎn)方式是:由個(gè)體開(kāi)展為軟件車間。軟件=程序+說(shuō)明書(shū)這個(gè)時(shí)期軟件維護(hù)耗資巨增,更嚴(yán)重是軟件產(chǎn)品不可維護(hù),導(dǎo)致軟件危機(jī)。誕生了軟件工程這個(gè)新興學(xué)科(68年)。本錢高IBM360OS,5000多人年,耗時(shí)4年(1963-1966),花費(fèi)2億多美元美國(guó)空軍:1955年軟件占總費(fèi)用(計(jì)算機(jī)系統(tǒng))的18%,70年60%,85年到達(dá)85%美國(guó)全球軍事指揮控制系統(tǒng),硬件1億美元,軟件高達(dá)7.2億美元計(jì)算機(jī)軟件和硬件費(fèi)用比0.1軟件的定義(3)軟件工程階段:(70年代~現(xiàn)在)特點(diǎn):打破軟件設(shè)計(jì)的個(gè)體化特征,有了軟件工程化的設(shè)計(jì)原那么、方法和標(biāo)準(zhǔn)。軟件產(chǎn)業(yè)興起了軟件產(chǎn)品化、系列化、工程化和標(biāo)準(zhǔn)化。生產(chǎn)方式是:由軟件車間聯(lián)成軟件工廠、公司。軟件=程序+文檔但是軟件標(biāo)準(zhǔn)的標(biāo)準(zhǔn)不完善,軟件危機(jī)仍然存在,必須加快促進(jìn)軟件工程的開(kāi)展?,F(xiàn)在正向著第四階段開(kāi)展,社會(huì)信息化、軟件產(chǎn)業(yè)化的階段過(guò)渡,從現(xiàn)在的技術(shù)性的軟件工程階段過(guò)渡到企業(yè)計(jì)算機(jī),社會(huì)信息化的計(jì)算機(jī)系統(tǒng)工程階段。0.1軟件的定義2.根據(jù)《GB/T11457-89軟件工程術(shù)語(yǔ)》中的定義:軟件是指與計(jì)算機(jī)系統(tǒng)的操作有關(guān)的計(jì)算機(jī)程序、規(guī)程、規(guī)那么以及任何與之有關(guān)的文件。簡(jiǎn)單地說(shuō),軟件包括程序和文檔兩局部。程序是指適合于計(jì)算機(jī)處理的指令序列以及所處理的數(shù)據(jù);文檔是與軟件開(kāi)發(fā),維護(hù)和使用有關(guān)的文字材料。軟件軟件就是程序?×一定要糾正軟件就是程序,開(kāi)發(fā)軟件就是編寫程序的錯(cuò)誤觀念!
軟件定義:軟件是能夠完成預(yù)定功能和性能的可執(zhí)行的計(jì)算機(jī)程序和使程序正常執(zhí)行所需要的數(shù)據(jù),加上描述軟件開(kāi)發(fā)過(guò)程及其管理、程序的操作和使用的有關(guān)文檔。程序的構(gòu)成:面向過(guò)程的程序=算法+數(shù)據(jù)結(jié)構(gòu)面向?qū)ο蟮某绦?對(duì)象+消息面向構(gòu)件的程序=構(gòu)件+框架軟件=程序+數(shù)據(jù)+文檔程序、軟件:獨(dú)唱—>>小合唱—>>合唱—>>萬(wàn)人大合唱
|||
簡(jiǎn)單程序較復(fù)雜程序軟件0.2軟件的特點(diǎn)軟件是一種邏輯實(shí)體,而不是具體的物理實(shí)體。因而它具有抽象性軟件的生產(chǎn)與硬件不同,在它的開(kāi)發(fā)過(guò)程中沒(méi)有明顯的制造過(guò)程在軟件的運(yùn)行和使用期間,沒(méi)有硬件那樣的機(jī)械磨損,老化問(wèn)題硬件失效率曲線,是一U型曲線〔即浴盆曲線〕。軟件失效率曲線,它沒(méi)有U型曲線的右半翼。因?yàn)檐浖淮嬖谀p和老化問(wèn)題,然而存在退化問(wèn)題。故障率時(shí)間初期故障率磨損實(shí)際理想故障率時(shí)間修改軟件故障曲線硬件故障曲線硬件軟件故障圖0.3軟件的分類按軟件的功能進(jìn)行劃分:系統(tǒng)軟件〔OS,DBMS等〕支撐軟件〔編譯程序等〕應(yīng)用軟件〔辦公軟件等〕按軟件的功能進(jìn)行劃分:系統(tǒng)軟件使計(jì)算機(jī)系統(tǒng)各個(gè)部件、相關(guān)軟件和數(shù)據(jù)協(xié)調(diào)、高效地工作的軟件操作系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)〔?〕設(shè)備驅(qū)動(dòng)程序通信處理程序等軟件的分類軟件的分類支撐軟件
協(xié)助用戶開(kāi)發(fā)軟件的工具軟件文本編輯程序文件格式化程序磁盤向磁帶進(jìn)行數(shù)據(jù)傳輸?shù)某绦虺绦驇?kù)系統(tǒng)支持需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試和支持管理的軟件應(yīng)用軟件商業(yè)數(shù)據(jù)處理軟件工程與科學(xué)計(jì)算軟件計(jì)算機(jī)輔助設(shè)計(jì)/制造軟件系統(tǒng)仿真軟件智能產(chǎn)品嵌入軟件醫(yī)療、制藥軟件事務(wù)管理、辦公自動(dòng)化軟件計(jì)算機(jī)輔助教學(xué)軟件軟件的分類按軟件工作方式劃分:
實(shí)時(shí)處理軟件分時(shí)軟件交互式軟件批處理軟件軟件的分類按軟件規(guī)模進(jìn)行劃分:類別參加人員數(shù) 研制期限源程序行數(shù)微型1 1~4周0.5k小型1 1~6月1k~2k數(shù)值計(jì)算或數(shù)據(jù)處理,通常沒(méi)有與其它程序的接口。需要按一定的標(biāo)準(zhǔn)化技術(shù)、正規(guī)的資料書(shū)寫以及定期的系統(tǒng)審查。只是沒(méi)有大題目那樣嚴(yán)格。中型2~5 1~2年5k~50k軟件人員之間、與用戶之間的聯(lián)系、協(xié)調(diào)的配合關(guān)系。因而方案、資料書(shū)寫以及技術(shù)審查需要比較嚴(yán)格地進(jìn)行。應(yīng)用程序和系統(tǒng)程序。系統(tǒng)的軟件工程方法是完全必要的。軟件的分類大型5~20 2~3年50k~100k編譯程序、小型分時(shí)系統(tǒng)、實(shí)時(shí)控制系統(tǒng)等。二級(jí)管理,假設(shè)干小組,每組5人以下。人員調(diào)整往往不可防止,新手的培訓(xùn)。采用統(tǒng)一的標(biāo)準(zhǔn),實(shí)行嚴(yán)格的審查是絕對(duì)必要的。甚大型100~10004~5年1M(=1000k)假設(shè)干個(gè)子工程,每一個(gè)子工程都是一個(gè)大型軟件。子工程之間具有復(fù)雜的接口。如遠(yuǎn)程通信系統(tǒng)、多任務(wù)系統(tǒng)、大型操作系統(tǒng)、大型數(shù)據(jù)庫(kù)管理系統(tǒng)、軍事指揮系統(tǒng)通?,F(xiàn)有這樣的規(guī)模。很顯然,這類問(wèn)題沒(méi)有軟件工程方法的支持,它的開(kāi)發(fā)工作是不可想象的。極大型2000~50005~10年1M~10M軍事指揮、彈道導(dǎo)彈防御系統(tǒng)。只是對(duì)軟件工程技術(shù)依賴的程度不同而已。軟件的分類1.1軟件的危機(jī)1.1.1什么是軟件危機(jī)軟件危機(jī)是指計(jì)算機(jī)軟件的開(kāi)發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重的問(wèn)題。軟件危機(jī)包含兩方面問(wèn)題:一、如何開(kāi)發(fā)軟件,以滿足不斷增長(zhǎng),日趨復(fù)雜的需求;二、如何維護(hù)數(shù)量不斷膨脹的軟件產(chǎn)品。28
1962年6月,美國(guó)飛向金星的第1個(gè)空間探測(cè)器
(水手1號(hào))飛行中偏移了航線,失敗了.
原因:飛艙中的導(dǎo)航程序中的一個(gè)語(yǔ)句的語(yǔ)義錯(cuò).精心設(shè)計(jì)并花費(fèi)巨額投資的美國(guó)阿波羅8號(hào)太空飛船登月飛行方案的軟件的錯(cuò)誤,使存儲(chǔ)器一局部信息喪失;阿波羅14號(hào)在10天的飛行中,出現(xiàn)18個(gè)軟件錯(cuò)誤.原因:軟件的可靠性問(wèn)題軟件開(kāi)發(fā)失敗的例子
1963年美國(guó)飛往火星的火箭爆炸,造成1000萬(wàn)美元的損失。原因是FORTRAN程序:
DO5I=1,3
誤寫為:DO5I=1.
3
1967年蘇聯(lián)“聯(lián)盟一號(hào)”載人宇宙飛船在返航時(shí),由于軟件忽略一個(gè)小數(shù)點(diǎn),在進(jìn)入大氣層時(shí)因打不開(kāi)降落傘而燒毀。軟件危機(jī)30美國(guó)肯尼迪發(fā)射的一枚“阿脫拉斯火箭,當(dāng)飛離地面幾十英里高空時(shí)翻轉(zhuǎn).地面控制中心被迫下令炸毀,結(jié)果損失1850萬(wàn)美元原因:飛行方案程序漏掉一個(gè)連接字符1963~1966年IBM開(kāi)發(fā)OS/360操作系統(tǒng),投資幾千萬(wàn)美元,共約100萬(wàn)條指令,工作5000多人年,經(jīng)費(fèi)達(dá)數(shù)億美圓,而結(jié)果卻令人沮喪,錯(cuò)誤多達(dá)2000個(gè)以上,系統(tǒng)根本無(wú)法正常運(yùn)行。原因:方案上的問(wèn)題,無(wú)法控制進(jìn)度拉布雷阿的焦油坑〔MuralofLaBreaTarPits〕OS/360系統(tǒng)的負(fù)責(zé)人Brooks這樣描述開(kāi)發(fā)過(guò)程的困難和混亂:“…像巨獸在泥潭中作垂死掙扎,掙扎得越猛,泥漿就沾得越多,最后沒(méi)有一個(gè)野獸能夠逃脫淹沒(méi)在泥潭中的命運(yùn)?!?21.1.2軟件危機(jī)的原因1、軟件的規(guī)模越來(lái)越大,結(jié)構(gòu)越來(lái)越復(fù)雜。 隨著計(jì)算機(jī)應(yīng)用的日益廣泛,需要開(kāi)發(fā)的軟件規(guī)模日益龐大,軟件結(jié)構(gòu)也日益復(fù)雜。1968年美國(guó)航空公司訂票系統(tǒng)到達(dá)30萬(wàn)條指令;IBM360OS第16版到達(dá)100萬(wàn)條指令,花了5000個(gè)人年;1973年美國(guó)阿波羅方案到達(dá)1千萬(wàn)條指令。Windows95有1000萬(wàn)行代碼,Windows2000有5000萬(wàn)行代碼.這些龐大軟件的功能非常復(fù)雜,表達(dá)在處理功能的多樣性和運(yùn)行環(huán)境的多樣性。有人曾估計(jì),軟件設(shè)計(jì)與硬件設(shè)計(jì)相比,其邏輯量要多達(dá)10~100倍。對(duì)于這種龐大規(guī)模的軟件,其調(diào)用關(guān)系、接口信息復(fù)雜,數(shù)據(jù)結(jié)構(gòu)也復(fù)雜,這種復(fù)雜程度超過(guò)了人所能接受的程度?!曹浖こ痰奶厥庑院腿祟愔橇Φ木窒扌浴?024/1/8331.1.2軟件危機(jī)的原因2、軟件開(kāi)發(fā)的管理困難、無(wú)方案性。由于軟件規(guī)模大,結(jié)構(gòu)復(fù)雜,又具有無(wú)形性,導(dǎo)致管理困難,進(jìn)程控制困難,質(zhì)量控制困難,可靠性無(wú)法保證。3、軟件開(kāi)發(fā)費(fèi)用不斷增加。軟件生產(chǎn)是一種智力勞動(dòng),它是資金密集、人力密集的產(chǎn)業(yè),大型軟件投入人力多,周期長(zhǎng),費(fèi)用上升很快。2024/1/8341.1.2軟件危機(jī)的原因4、軟件需求不充分〔軟件開(kāi)發(fā)人員對(duì)需求的理解與用戶的本來(lái)愿望有差異〕。5、軟件開(kāi)發(fā)技術(shù)落后〔缺乏有力的方法學(xué)和工具的支持〕。6、軟件開(kāi)發(fā)過(guò)程無(wú)評(píng)測(cè)手段。1979年美國(guó)財(cái)政部對(duì)美國(guó)聯(lián)邦政府開(kāi)發(fā)的軟件工程進(jìn)行了調(diào)查,結(jié)果為:投資后未能交付的軟件占20-21%,交付后不能使用的軟件占47%,需要經(jīng)過(guò)修改才能使用的占29%,交付后可以使用的只占3-4%。原因:需求沒(méi)有做好根據(jù)1999年StandishGroup對(duì)當(dāng)年美國(guó)工程的統(tǒng)計(jì)數(shù)字說(shuō)明,只有26%的工程是真正成功的,28%的工程是徹底失敗的〔即中途夭折的工程〕,介于兩者之間是完成了的、但“受到質(zhì)疑的〞工程占46%,這些工程被定義為存在費(fèi)用超支、超出工期的工程。這些存在問(wèn)題的或是失敗的工程帶來(lái)的直接損失是970億美元,占了美國(guó)當(dāng)年全部IT投資〔2550億美元,17.5萬(wàn)個(gè)工程左右〕的近40%,而由于這些工程所帶來(lái)的間接損失是無(wú)法估量的。StandishGroup的CHAOS報(bào)告進(jìn)一步證實(shí)了與成功工程最密切的因素是良好的需求管理,也就是工程的范圍管理,特別是管理好工程的變更。2003年,TheStandishGroup年度報(bào)告指出,在他們調(diào)查的13522個(gè)工程中,有66%的軟件工程失敗〔34%成功〕、82%超出時(shí)程、48%推出時(shí)缺乏必需的功能,總計(jì)約550億美元浪費(fèi)在不良的方案、預(yù)算或軟件估算上。目前,軟件專業(yè)人員對(duì)軟件開(kāi)發(fā)和維護(hù)存有不少糊涂觀念,在實(shí)踐過(guò)程中或多或少地采用了錯(cuò)誤的方法和技術(shù),這是軟件問(wèn)題開(kāi)展為軟件危機(jī)的主要原因。與軟件開(kāi)發(fā)和維護(hù)有關(guān)的許多錯(cuò)誤認(rèn)識(shí)和作法的形成,可以歸因于在計(jì)算機(jī)系統(tǒng)開(kāi)展的早期階段軟件開(kāi)發(fā)的個(gè)體化特點(diǎn)。錯(cuò)誤的認(rèn)識(shí)和作法主要表現(xiàn)為無(wú)視軟件需求分析的重要性,認(rèn)為軟件開(kāi)發(fā)就是寫程序并設(shè)法使之運(yùn)行,輕視軟件維護(hù)等。對(duì)軟件的常見(jiàn)誤解用戶的誤解開(kāi)發(fā)人員的誤解管理者的誤解誤解先對(duì)軟件需求做一般的說(shuō)明,以后再逐步明確就可以了.需求本身就是不斷變化的,軟件容易改變可以很快調(diào)整適應(yīng)這種變化.現(xiàn)實(shí)軟件需求不明確是造成軟件開(kāi)發(fā)費(fèi)用增加和延時(shí)交貨的主要原因.軟件開(kāi)發(fā)費(fèi)用隨著開(kāi)發(fā)階段的后移而大大增加.用戶的誤解改正一個(gè)問(wèn)題需付出的代價(jià)需求分析總體設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼集成測(cè)試系統(tǒng)測(cè)試現(xiàn)場(chǎng)改正一個(gè)問(wèn)題的估計(jì)費(fèi)用改正一個(gè)問(wèn)題估計(jì)的工作量20200200010005.02.50.050.5(美元)(人天)開(kāi)發(fā)人員的誤解誤解一旦程序開(kāi)發(fā)完畢工作正常,我的任務(wù)就完成了在程序工作之前,無(wú)法顧及軟件的質(zhì)量問(wèn)題.對(duì)于一個(gè)成功的工程來(lái)說(shuō),唯一能夠提供的就是可以工作的程序.現(xiàn)實(shí)一個(gè)軟件的50%-70%的工作量耗在軟件交付使用以后.對(duì)于某些錯(cuò)誤軟件審查比軟件測(cè)試更加有效.一個(gè)完整的軟件要包括程序、各種文件和各種數(shù)據(jù).管理者的誤解誤解書(shū)上已經(jīng)有各種軟件開(kāi)發(fā)的標(biāo)準(zhǔn),拿來(lái)用就是了.已經(jīng)有足夠的軟件開(kāi)發(fā)工具可供使用.一旦工程的程序員不夠可以隨時(shí)增加.現(xiàn)實(shí)書(shū)上是有各種軟件開(kāi)發(fā)的標(biāo)準(zhǔn),但不是過(guò)時(shí)就是不適用.軟件工具不是一拿來(lái)就能用的.“工程后期增加程序員會(huì)使工程的完成更加推后."--Brooks了解產(chǎn)生軟件危機(jī)的原因,澄清錯(cuò)誤認(rèn)識(shí),建立起關(guān)于軟件開(kāi)發(fā)和維護(hù)的正確概念,還僅僅是解決軟件危機(jī)的開(kāi)始,全面解決軟件危機(jī)需要一系列綜合措施。1.1.3解決軟件危機(jī)的途徑:解決軟件危機(jī)的途徑就是軟件工程學(xué)的生成過(guò)程。主要有:〔1〕采用工程化方法和工程途徑來(lái)研制與維護(hù)軟件。在定義、開(kāi)發(fā)、維護(hù)的流程中,將軟件設(shè)計(jì)與工程實(shí)踐相結(jié)合,開(kāi)發(fā)技術(shù)與管理技術(shù)相結(jié)合,到達(dá)低本錢、高質(zhì)量、滿足需求的軟件開(kāi)發(fā)目的。這就形成了軟件工程的技術(shù),把軟件作為工程產(chǎn)品來(lái)處理,按照方案、分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、維護(hù)的周期來(lái)進(jìn)行生產(chǎn)?!?〕采用先進(jìn)的技術(shù)、方法與工具來(lái)開(kāi)發(fā)與設(shè)計(jì)軟件。技術(shù)是指生產(chǎn)管理技術(shù)?!?〕采用必要的組織管理措施。軟件工程工程管理是通過(guò)人員組織管理、工程方案管理、標(biāo)準(zhǔn)化量化管理、配置管理,保證軟件產(chǎn)品按期高質(zhì)量完成??傊?,為了解決軟件危機(jī),既要有技術(shù)措施〔方法和工具〕,又要有必要的組織管理措施。1.2軟件工程軟件工程:采用工程的概念、原理、技術(shù)和方法來(lái)開(kāi)發(fā)與維護(hù)軟件,把經(jīng)過(guò)時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來(lái)?!败浖こ台曇辉~是1968年北大西洋公約組織(NATO)在聯(lián)邦德國(guó)召開(kāi)的一次會(huì)議上首次提出。Boehm:運(yùn)用現(xiàn)代科學(xué)技術(shù)知識(shí)來(lái)設(shè)計(jì)并構(gòu)造計(jì)算機(jī)程序及為開(kāi)發(fā)、運(yùn)行和維護(hù)這些程序所必需的相關(guān)文件資料IEEE:1.將系統(tǒng)化的、嚴(yán)格約束的、可量化的方法應(yīng)用于軟件的開(kāi)發(fā)、運(yùn)行和維護(hù),即將工程化應(yīng)用于軟件;2.在1中所述方法的研究。FritzBauer:建立并使用完善的工程化原那么,以較經(jīng)濟(jì)的手段獲得能在實(shí)際機(jī)器上有效運(yùn)行的可靠軟件的一系列方法
軟件工程定義軟件工程本質(zhì)特性:1〕軟件工程關(guān)注于大型程序的構(gòu)造。2〕軟件工程的中心課題是控制復(fù)雜性主要考慮:如何分解和集成為什么要分解:G.Miller,“7±2〞原那么3〕軟件經(jīng)常變化4〕開(kāi)發(fā)軟件的效率非常重要5〕和諧地合作是開(kāi)發(fā)軟件的關(guān)鍵6〕軟件必須有效地支持它的用戶7〕在軟件工程領(lǐng)域中是由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品擴(kuò)展定義:軟件=知識(shí)+程序+數(shù)據(jù)+文檔1.2.2軟件工程的根本原理用分階段的生命周期方案嚴(yán)格管理堅(jiān)持進(jìn)行階段評(píng)審實(shí)行嚴(yán)格的產(chǎn)品控制采用現(xiàn)代程序設(shè)計(jì)技術(shù)結(jié)果應(yīng)能清楚地審查開(kāi)發(fā)小組的人員應(yīng)該少而精成認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性P7-9案例分析1:A組和B組都有共同的目標(biāo):十一期間到云南麗江旅游.A組組員在組長(zhǎng)帶著下,制定了詳細(xì)的出游方案,作好了準(zhǔn)備.B組組員卻什么都沒(méi)有準(zhǔn)備.通過(guò)分析,比較兩個(gè)小組可能出現(xiàn)的結(jié)果.原理1:用分階段的生命周期方案嚴(yán)格管理?yè)?jù)統(tǒng)計(jì),在不成功的軟件工程中,50%左右是由于方案不周造成的應(yīng)該把軟件生命周期劃分成假設(shè)干各階段,并相應(yīng)制定出切實(shí)可行的方案,然后嚴(yán)格地按照方案對(duì)軟件的開(kāi)發(fā)與維護(hù)工作進(jìn)行管理案例分析2:A組做了出游的方案如下表所示:活動(dòng)時(shí)間訂車票9.22-9.24聯(lián)系麗江旅行社訂房間9.22-9.24買路上吃的食品9.25出發(fā)到麗江10.1游玩10.2-10.5返回學(xué)校10.6如果其中任何一個(gè)活動(dòng)沒(méi)有按照方案進(jìn)行,將導(dǎo)致整個(gè)出游方案的失敗如何解決?????原理2:堅(jiān)持進(jìn)行階段評(píng)審軟件的質(zhì)量保證工作不能等到編碼階段結(jié)束后再進(jìn)行,在每個(gè)階段都應(yīng)進(jìn)行嚴(yán)格的審查據(jù)Boehm等人統(tǒng)計(jì),設(shè)計(jì)錯(cuò)誤占軟件錯(cuò)誤的63%,編碼錯(cuò)誤占37%HP公司:有1/3以上的錯(cuò)誤是由于不熟悉用戶對(duì)界面的需求而引起的,通過(guò)建立大量的原型和設(shè)計(jì)評(píng)審方案,減少產(chǎn)品發(fā)布后的缺陷數(shù),在公布的四次缺陷數(shù)據(jù)中,前兩次發(fā)布后的缺陷占25%,第三次降到10%以下,第四次那么為零案例分析3:A組做了出游的方案如下表所示:活動(dòng)時(shí)間訂車票9.22-9.24聯(lián)系麗江旅行社訂房間9.22-9.24買路上吃的食品9.25出發(fā)到麗江10.1游玩10.2-10.5返回學(xué)校10.6在定票期間,由于負(fù)責(zé)定票的人Lily在沒(méi)有通知大家的情況下將返回學(xué)校的票定在10.7日,此時(shí)將造成什么影響?在整個(gè)活動(dòng)中允許隨意的變更嗎?原理3:實(shí)行嚴(yán)格的產(chǎn)品控制加強(qiáng)配置管理建立嚴(yán)格的變更控制流程原理4:采用現(xiàn)代程序設(shè)計(jì)技術(shù)結(jié)構(gòu)化分析〔SA〕結(jié)構(gòu)化設(shè)計(jì)〔SD〕面向?qū)ο蠹夹g(shù)〔OOA/OOD〕實(shí)踐說(shuō)明:采用先進(jìn)的技術(shù)既可以提高軟件開(kāi)發(fā)的效率,又可以提高軟件維護(hù)的效率。原理5:結(jié)果應(yīng)能清楚地審查根據(jù)軟件開(kāi)發(fā)工程的總目標(biāo)和完成期限,規(guī)定開(kāi)發(fā)小組的責(zé)任、產(chǎn)品標(biāo)準(zhǔn)及完成日期,從而使得所得到的結(jié)果能夠清楚地審查。原理6:開(kāi)發(fā)小組的人員應(yīng)少而精軟件開(kāi)發(fā)小組成員的素質(zhì)要高,而人數(shù)那么不宜過(guò)多。開(kāi)發(fā)小組人員的素質(zhì)和數(shù)量是影響軟件產(chǎn)品質(zhì)量和開(kāi)發(fā)效率的重要因素。案例分析4:麗江活動(dòng)結(jié)束了,A小組這時(shí)應(yīng)該做些什么呢?原理7:不斷改進(jìn)軟件工程實(shí)踐不斷改進(jìn)軟件工程的實(shí)踐。軟件工程不應(yīng)該停留在已有的技術(shù)水平上,應(yīng)該積極主動(dòng)地采取或創(chuàng)造新的軟件技術(shù),要注意不斷總結(jié)經(jīng)驗(yàn),收集工作量、進(jìn)度、本錢等數(shù)據(jù),并運(yùn)行出錯(cuò)類型和問(wèn)題報(bào)告的統(tǒng)計(jì)。幾個(gè)關(guān)于軟件工程本質(zhì)特性和根本原理的問(wèn)題問(wèn)題一:軟件工程適用范圍?問(wèn)題二:軟件工程是如何控制系統(tǒng)開(kāi)發(fā)的復(fù)雜性的?問(wèn)題三:以你的經(jīng)驗(yàn),舉例說(shuō)明一個(gè)成熟的軟件通常采用什么方法來(lái)適應(yīng)現(xiàn)實(shí)世界的變化的?問(wèn)題四:假設(shè)某軟件公司,能為同一個(gè)用戶開(kāi)發(fā)兩個(gè)不同層次的軟件:一個(gè)層次的軟件功能非常強(qiáng)大,在滿足用戶所有需求的根底上,還能提供大大超過(guò)用戶需求的其他更多更強(qiáng)的功能;另一個(gè)層次的軟件僅僅能滿足用戶需求,但沒(méi)有提供其他額外的功能。請(qǐng)問(wèn)如果你是工程負(fù)責(zé)人,你會(huì)選擇為客戶開(kāi)發(fā)那個(gè)層次的軟件?問(wèn)題五:協(xié)同工作有什么重要性?幾個(gè)關(guān)于軟件工程本質(zhì)特性和根本原理的問(wèn)題問(wèn)題六:怎樣理解“在軟件工程領(lǐng)域中是由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品〞這句話?問(wèn)題七:某軟件開(kāi)發(fā),由于時(shí)間和資金都非常緊迫,在需求分析人員非常認(rèn)真、仔細(xì)地做完需求分析之后,說(shuō):我們可以保證我們的需求分析正確性,不用花時(shí)間檢查了,設(shè)計(jì)人員可以直接拿著這份分析報(bào)告,馬上開(kāi)始設(shè)計(jì)。如果你是工程負(fù)責(zé)人,你會(huì)如何決定?為什么?問(wèn)題八:在需求分析完成并獲得了用戶的肯定,也通過(guò)了評(píng)審,進(jìn)入軟件設(shè)計(jì)階段之后,用戶的想法有了改變,提出了一個(gè)新的要求,此時(shí)如果你是工程負(fù)責(zé)人,應(yīng)該怎樣做?“現(xiàn)在大家都已認(rèn)識(shí)到,如果有哪個(gè)工程不遵循軟件工程原那么必定會(huì)受到實(shí)踐的懲罰。〞“軟件工程課是我們參加工作以后最能直接應(yīng)用的一門專業(yè)課。〞——一位剛畢業(yè)參加工作的計(jì)算機(jī)專業(yè)學(xué)生1.2.3軟件工程方法學(xué)通常把在軟件生命周期全過(guò)程中使用的一整套技術(shù)方法的集合稱為方法學(xué)(methodology),也稱為范型(paradigm)。在軟件工程領(lǐng)域中,這兩個(gè)術(shù)語(yǔ)的含義根本相同。軟件工程方法學(xué)包含3個(gè)要素:方法、工具和過(guò)程。67軟件工程三個(gè)要素
工具Softwareengineeringlayers圖1-5軟件工程三個(gè)要素方法(步驟、原那么)
過(guò)程(任務(wù)(活動(dòng)))
質(zhì)量焦點(diǎn)工具為軟件開(kāi)發(fā)提供自動(dòng)或半自動(dòng)的軟件支撐環(huán)境,建立計(jì)算機(jī)輔助軟件工程(CASE)的軟件開(kāi)發(fā)支撐系統(tǒng)為軟件開(kāi)發(fā)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 護(hù)理感染控制與公共衛(wèi)生競(jìng)賽
- 2.6.6.3精神科危重患者護(hù)理常規(guī)學(xué)習(xí)培訓(xùn)課件
- 大豐市小海中學(xué)高二生物三同步課程講義第講免疫調(diào)節(jié)(四)
- 2025年辦公設(shè)備維修服務(wù)協(xié)議
- 《液體劑型保健用品生產(chǎn)技術(shù)規(guī)范》標(biāo)準(zhǔn) 征求意見(jiàn)稿
- 基于大數(shù)據(jù)的電子支付異常監(jiān)測(cè)系統(tǒng)
- 2025年養(yǎng)寵訓(xùn)練新工具 正向激勵(lì)A(yù)I助手評(píng)測(cè)
- 城市交通智能調(diào)控-第2篇
- 基于AI的注入攻擊檢測(cè)
- 2026 年中職掘進(jìn)技術(shù)(隧道施工基礎(chǔ))試題及答案
- 后備干部考試題庫(kù)及答案2025
- 施工現(xiàn)場(chǎng)的安全溝通與應(yīng)急響應(yīng)方案
- 述職報(bào)告?zhèn)€人優(yōu)勢(shì)劣勢(shì)
- 燃?xì)夤芫W(wǎng)輸配工程可行性研究報(bào)告
- 肉毒素除皺注射課件
- DB61-T5129-2025 陜西省房屋建筑與裝飾工程工程量計(jì)算標(biāo)準(zhǔn)
- 神奇的加密術(shù)教學(xué)設(shè)計(jì)-2025-2026學(xué)年初中數(shù)學(xué)北師大版2024八年級(jí)上冊(cè)-北師大版2024
- 光伏電站生產(chǎn)指標(biāo)課件
- 轉(zhuǎn)讓專利權(quán)合同協(xié)議模板
- 2025年輔警招聘考試試題題庫(kù)含答案詳解(完整版)
- 工業(yè)廠房建設(shè)公司簡(jiǎn)介范文
評(píng)論
0/150
提交評(píng)論