版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
課程概述一、軟件工程學(xué)科介紹二、學(xué)習(xí)目的三、部分參考資料四、課程特點(diǎn)和學(xué)習(xí)的注意事項(xiàng)五、教材簡介六、課程考核方式一、軟件工程學(xué)科介紹軟件程學(xué)科發(fā)展歷史三個(gè)階段:概念提出、學(xué)科雛形、學(xué)科確立第一階段:概念提出1968年NATO會議(北大西洋公約組織的計(jì)算機(jī)科學(xué)家的國際會議)提出“軟件工程”概念。當(dāng)時(shí)對“軟件工程”代表性定義:為了經(jīng)濟(jì)地獲得在真實(shí)機(jī)器上可靠工作的軟件而制定和使用的合理工程原則和方法。1972年IEEE學(xué)會的計(jì)算機(jī)分會IEEE一CS第一次出版了“軟件工程學(xué)報(bào)”第二階段:學(xué)科雛形上世紀(jì)70年代末,美國將軟件工程教程列入研究生教育計(jì)劃。1980年代末和1990年代初,軟件工程教育得到卡內(nèi)基一梅隆大學(xué)軟件工程研究所(CMU/SEI)的支持。1991年,“軟件工程”被ACM(美國計(jì)算機(jī)協(xié)會)和IEEE/CS列為計(jì)算學(xué)科的九個(gè)知識領(lǐng)域之一。1993年,IEEE一CS和ACM為了把軟件工程建設(shè)成為一個(gè)專業(yè),建立了IEEE一CS/ACM聯(lián)合指導(dǎo)委員會。第三階段:學(xué)科確立2023年8月,IEEE一CS和ACM給出:軟件工程知識體(SWEBOK,SoftwareEngineeringBodyofKnowledge)軟件工程教育知識體(SEEK)最終版,標(biāo)志著軟件工程學(xué)科在世界范圍正式確立。軟件工程、計(jì)算機(jī)科學(xué)、計(jì)算機(jī)工程、信息系統(tǒng)、信息技術(shù)并列成為計(jì)算學(xué)科下的獨(dú)立學(xué)科。軟件工程知識體(SWEBOK):全面描述了軟件工程實(shí)踐所需的知識。SWEBOK(軟件工程知識體》10個(gè)領(lǐng)域軟件需求軟件設(shè)計(jì)軟件構(gòu)造軟件測試軟件維護(hù)軟件配置管理軟件工程管理軟件工程過程軟件工程工具和方法軟件質(zhì)量SWEBOK具體結(jié)構(gòu)(1)軟件工程與其他學(xué)科的關(guān)系1、軟件工程是計(jì)算學(xué)科9個(gè)領(lǐng)域之一.算法和數(shù)據(jù)結(jié)構(gòu)計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)人工智能和機(jī)器人學(xué)數(shù)據(jù)庫和信息檢索人一機(jī)交互操作系統(tǒng)程序設(shè)計(jì)語言軟件方法學(xué)和軟件工程數(shù)字和符號計(jì)算計(jì)算學(xué)科中12個(gè)反復(fù)出現(xiàn)的基本概念綁定.概念和形式模型效率抽象層次準(zhǔn)時(shí)間排序安全性大問題的復(fù)雜性一致性和完備性演化按空間排序重用折衷與決策2、8個(gè)相關(guān)學(xué)科知識域計(jì)算機(jī)工程計(jì)算機(jī)科學(xué)數(shù)學(xué)管理學(xué)項(xiàng)目管理質(zhì)量管理系統(tǒng)工程學(xué)軟件人類工程學(xué)其中:計(jì)算機(jī)科學(xué)、數(shù)學(xué)是基礎(chǔ)工程學(xué)科、管理學(xué)科也非常重要軟件程是一門什么樣的學(xué)科?它是指導(dǎo)計(jì)算機(jī)軟件開發(fā)與維護(hù)的一門工程學(xué)科。工程:將科學(xué)及數(shù)學(xué)原理運(yùn)用于實(shí)際用途的應(yīng)用手段,如:設(shè)計(jì)、制造、機(jī)器操縱、構(gòu)架等。典型的傳統(tǒng)工程:建筑工程、機(jī)械工程、電力工程等。概括的說,軟件工程即用工程、科學(xué)和數(shù)學(xué)的原則和方法研制、維護(hù)計(jì)算機(jī)軟件的有關(guān)技術(shù)及方法,其優(yōu)點(diǎn)是以較小的代價(jià)開發(fā)高質(zhì)量的軟件并有效地維護(hù)它。二、學(xué)習(xí)目的(1)掌握軟件工程的基礎(chǔ)知識和理論,對軟件工程學(xué)有一個(gè)全貌的了解;熟悉軟件項(xiàng)目開發(fā)和維護(hù)的一般過程;純熟掌握軟件需求分析、設(shè)計(jì)、編碼和測試等階段的重要思想和技術(shù)方法;二、學(xué)習(xí)目的(2)通過學(xué)習(xí),特別是通過課程設(shè)計(jì),真正運(yùn)用和深刻體會軟件工程的思想方法,轉(zhuǎn)變對軟件開發(fā)的結(jié)識:從個(gè)人的單純編程活動(dòng)轉(zhuǎn)移到進(jìn)行系統(tǒng)分析與設(shè)計(jì)方面上來轉(zhuǎn)變思維定式:程序員―系統(tǒng)工程師(系統(tǒng)分析員)三、部分參考資料《軟件工程理論與實(shí)踐》許家冶等編著,高等教育出版社,2023年《軟件工程》(第二版),齊治昌等,高等教育出版社,2023年《面向?qū)ο蟮南到y(tǒng)分析》,楊芙清等編著,清華大學(xué)出版社,2023年《UML用戶指南》GBooch等著,邵維忠等譯,機(jī)械工業(yè)出版社2023年四、課程特點(diǎn)和學(xué)習(xí)的注肯事項(xiàng)1、知易行難要將理論知識與實(shí)踐運(yùn)用結(jié)合,進(jìn)行對照,以加深理解和掌握。2、內(nèi)容紛雜軟件工程涉及計(jì)算機(jī)科學(xué)、數(shù)學(xué)、工程科學(xué)和管理科學(xué)等多個(gè)領(lǐng)域。其中:計(jì)算機(jī)科學(xué)和數(shù)學(xué)用于構(gòu)造模型與算法;工程科學(xué)用于制定規(guī)范、設(shè)計(jì)范型、評估成本及擬定權(quán)衡管理科學(xué)用于計(jì)劃、資源、質(zhì)量和成本的管理。五、教材總目錄第1章軟件工程學(xué)概述第2章可行性研究第3章需求分析第4章形式化說明技術(shù)第5章總體設(shè)計(jì)第6章具體設(shè)計(jì)第7章實(shí)現(xiàn)第8章維護(hù)第9章面向?qū)ο蠓椒▽W(xué)引論第10章面向?qū)ο蠓治龅?1章面向?qū)ο笤O(shè)計(jì)第12章面向?qū)ο髮?shí)現(xiàn)第13章軟件項(xiàng)目管理附錄AC++類庫管理系統(tǒng)分析與設(shè)計(jì)附錄B漢字行編輯程序設(shè)計(jì)課程內(nèi)容學(xué)時(shí)安排章節(jié)課程內(nèi)容學(xué)時(shí)l軟件工程學(xué)概述42可行性研究43需求分析45總體設(shè)計(jì)66具體設(shè)計(jì)47實(shí)現(xiàn)8章節(jié)課程內(nèi)容學(xué)時(shí)8軟件維護(hù)29面向?qū)ο蠓椒▽W(xué)引論410面向?qū)ο蠓治?11面向?qū)ο笤O(shè)計(jì)212面向?qū)ο髮?shí)現(xiàn)213軟件項(xiàng)目管理614總結(jié)2六、課程考核方式分?jǐn)?shù)組成:平時(shí)成績(10%):以理論課課堂表現(xiàn)為主。作業(yè)(30%):書面作業(yè)期末考試(60%):第1章軟件工程學(xué)概述學(xué)習(xí)重點(diǎn)1、軟件危機(jī)、軟件工程產(chǎn)生的因素2、軟件工程過程和軟件生命周期3、軟件生命周期模型掌握幾個(gè)基本概念軟件危機(jī)軟件工程軟件過程軟件生命周期軟件生命周期模型軟件危機(jī)與軟件工程學(xué)軟件工程學(xué)的產(chǎn)生要從“軟件危機(jī)”說起1968年,第一屆NAT0(北大西洋公約組織的計(jì)算機(jī)科學(xué)家的國際會議)會議,“軟件工程”的慨念作為一種有效解決“軟件危機(jī)”的途徑被正式提出。什么是軟件危機(jī)?軟件危機(jī)有什么典型表現(xiàn)?為什么會產(chǎn)生軟件危機(jī)?怎么解決軟件危機(jī)?§1軟件危機(jī)§1.1.1軟件危機(jī)介紹什么是軟件危機(jī)?軟件危機(jī)指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中,所碰到的一系列嚴(yán)重問題。軟件危機(jī)重要涉及的問題(兩方面):①如何開發(fā)軟件②如何維護(hù)軟件軟件危機(jī)有什么典型表現(xiàn)?(1)開發(fā)費(fèi)用和進(jìn)度難以估算和控制,大大超過預(yù)期的資金和規(guī)定日期;軟件需求分析不夠充足,用戶不滿意“已經(jīng)完畢”的軟件系統(tǒng)。軟件質(zhì)量難于保證;軟件維護(hù)困難;難以改正程序中的錯(cuò)誤;難以根據(jù)用戶的需要在原有程序中增長一些新的功能。軟件危機(jī)有什么典型表現(xiàn)?通常沒有保存適當(dāng)?shù)奈臋n資料。文檔的作用:軟件開發(fā)管理人員:用于管理和評價(jià)軟件開發(fā)工程的進(jìn)展?fàn)顩r軟件開發(fā)人員:用于開發(fā)人員對各個(gè)階段的工作都進(jìn)行周密思考、全盤權(quán)衡、從而減少返工。并且可在開發(fā)初期發(fā)現(xiàn)錯(cuò)誤和不一致性,便于及時(shí)加以糾正軟件維護(hù)人員:軟件維護(hù)的依據(jù)開發(fā)成本逐年上升,軟件開發(fā)生產(chǎn)率提高的速度,遠(yuǎn)遠(yuǎn)跟不上計(jì)算機(jī)應(yīng)用迅速普及進(jìn)一步的趨勢。幾個(gè)軟件危機(jī)的著名案例①1966年,IBM360機(jī)的操作系統(tǒng)?;ㄙM(fèi)5000人一年的工作量,寫了近1萬行代碼。錯(cuò)誤百出,每次的新版本就是從前一版本中找1000個(gè)程序錯(cuò)誤而修正的結(jié)果。②1963年,美國用于控制火星探測器的計(jì)算機(jī)軟件中的一個(gè)“,”號被誤寫為“.”,而致使飛往火星的探測器發(fā)生爆炸,導(dǎo)致高達(dá)數(shù)億美元的損失。③美國丹佛新國際機(jī)場自動(dòng)化行李系統(tǒng)軟件。投資1.93億美元,計(jì)劃1993年萬圣節(jié)啟用。但開發(fā)人員一直為系統(tǒng)錯(cuò)誤困擾,屢次推后啟用時(shí)間,直到1994年6月,機(jī)場計(jì)劃者認(rèn)可無法預(yù)測何時(shí)能啟用。④1996年,歐洲阿里亞納5型運(yùn)載火箭墜毀,導(dǎo)致5億美元損失。因素是控制軟件中的一個(gè)錯(cuò)誤?!?.1.2產(chǎn)生軟件危機(jī)的因素重要兩個(gè)因素:1、與軟件自身的特點(diǎn)有關(guān)2、與軟件開發(fā)與維護(hù)的方法不對的有關(guān)。一、軟件自身的特點(diǎn)(1)軟件與硬件、一般程序存在很多不同之處。1、軟件與硬件不同抽象性。軟件生產(chǎn)沒有明顯的制造過程,難以衡量開發(fā)進(jìn)展,也難以控制軟件質(zhì)量。問題的隱蔽性。沒有硬件的磨損、老化問題,但存在開發(fā)初期在分析、設(shè)計(jì)階段的錯(cuò)誤,修改難度較大。失效率蜘線改正一個(gè)問題需付出的代價(jià)2、軟件與一般程序不同(1)①軟件遠(yuǎn)比一般程序規(guī)模龐大,復(fù)雜性高軟件所反映的實(shí)際問題的復(fù)雜性程序邏輯結(jié)構(gòu)的復(fù)雜性。例1:Windows95,1000萬行代碼;Windows2023,5000萬行代碼例2:Exchange2023和windows2023開發(fā)人員軟件的規(guī)模軟件產(chǎn)品的特殊性和人類智力的局限性,導(dǎo)致人們無力解決“復(fù)雜問題”。2、軟件與一般程序不同(2)②大型軟件開發(fā)既有技術(shù)問題,尚有社會問題。社會因素:組織機(jī)構(gòu)、體制、管理方式、觀念、人的心理素等。開發(fā)團(tuán)隊(duì)成員分工合作技術(shù)與管理的矛盾軟件開發(fā)人員對軟件應(yīng)用的領(lǐng)域知識的了解二、軟件開發(fā)維護(hù)方法中存在的問題(1)①對用戶需求的獲取不對的用戶的因素分析人員的因素對分析人員的規(guī)定:溝通能力、歸納總結(jié)能力、經(jīng)驗(yàn)越是初期產(chǎn)生的錯(cuò)誤,付出的代價(jià)越大。圖:不同時(shí)期引入同一變動(dòng)的代價(jià)二、軟件開發(fā)維護(hù)方法中存在的問題(2)②軟件開發(fā)就是編寫程序。一個(gè)完整的軟件產(chǎn)品由一整套完整的配置組成,程序只是其中的一個(gè)組成部分。軟件開發(fā)過程涉及多個(gè)階段,每個(gè)階段的產(chǎn)品都是最終的完整的軟件產(chǎn)品的一部分。③軟件開發(fā)只要依靠個(gè)別編程高手就能完畢。④輕視軟件維護(hù)軟件維護(hù)約占軟件費(fèi)用55一75%,涉及修改軟件運(yùn)營的錯(cuò)誤;對軟件進(jìn)行改善和功能擴(kuò)充。軟件維護(hù)在軟件費(fèi)用的比例三、其他產(chǎn)生軟件危機(jī)的因素①軟件開發(fā)尚未完全擺脫手工藝的開發(fā)方式。②軟件成本相稱昂貴,重要依靠大量復(fù)雜的、高強(qiáng)度的腦力勞動(dòng)③軟件的開發(fā)和運(yùn)營經(jīng)常受到計(jì)算機(jī)系統(tǒng)的限制,對計(jì)算機(jī)系統(tǒng)有著不同限度的依賴性。軟件的“可移植性”就是指的軟件對硬件的依賴限度。好的可移植性依賴少?!?.1.3消除軟件危機(jī)的途徑1、徹底消除“軟件就是程序”的錯(cuò)誤觀念。2、充足結(jié)識到軟件開發(fā)是一種組織良好、管理嚴(yán)密、各類人員協(xié)同配合、共同完畢的工程項(xiàng)目,不是個(gè)人獨(dú)立的勞動(dòng)。3、推廣和使用在實(shí)踐中總結(jié)出來的軟件開發(fā)的成功技術(shù)和方法。4、開發(fā)和使用更好的軟件工具總結(jié):“軟件工程”的方法理論是擺脫軟件危機(jī)的一個(gè)重要出路。計(jì)算機(jī)和軟件科學(xué)家為解決軟件危機(jī)問題,嘗試將在其它領(lǐng)域中行之有效的工程學(xué)知識運(yùn)用到軟件開發(fā)工作中來,通過不斷實(shí)踐和總結(jié),最后得出一個(gè)結(jié)論;按工程化的原則和方法組織軟件開發(fā)工作是有效的,是擺脫軟件危機(jī)的一個(gè)重要出路。思考題(1)1)只要是編程高手,即使是不懂軟件工程,也能編出很好的軟件。軟件是服務(wù)于大眾,卻是由個(gè)性化的開發(fā)人員完畢的。假如個(gè)性化太強(qiáng),程序就無法閱讀,其別人員也就無法維護(hù)。例:國內(nèi)80年代涌現(xiàn)出來的眾多漢字操作系統(tǒng)均是由編程高手完畢的。思考題(2)2)只要擁有一套講述如何開發(fā)軟件的書籍,并了解了書中的標(biāo)準(zhǔn)與示例,就可以解決軟件開發(fā)中碰到的任何問題。軟件是用來解決現(xiàn)實(shí)問題的,現(xiàn)實(shí)問題的特殊性對規(guī)范提出了挑戰(zhàn)(要進(jìn)行適應(yīng))。軟件技術(shù)是發(fā)展的,沒有祖?zhèn)髅胤健>拖駬碛惺匙V并不能成為名廚同樣,軟件開發(fā)需要實(shí)踐。思考題(3)3)只要擁有最佳的開發(fā)工具、最佳的計(jì)算機(jī),一定能做出優(yōu)秀的軟件。硬件環(huán)境只是必要條件,人才是充足條件,軟件是人在一定的約束條件下發(fā)明出來的。因人因事而異。思考題(4)4)軟件開發(fā)時(shí),假如進(jìn)度慢,落后于計(jì)劃,可以增長更多的程序員來解決。增長人力可以減少開發(fā)時(shí)間嗎?新手!任務(wù)的重新劃分!溝通更加復(fù)雜!必須依靠科學(xué)地計(jì)劃來解決這樣的問題。思考題(5)5)爭議:假如軟件運(yùn)營較慢,是換一臺更快的計(jì)算機(jī),還是設(shè)計(jì)一種更快的算法?軟件的性能問題;應(yīng)用級別→算法的合理性;系統(tǒng)級別→操作系統(tǒng)、數(shù)據(jù)庫系統(tǒng)、系統(tǒng)軟件等;硬件級別→機(jī)器性能§1.2軟件工程§1.2.1軟件工程介紹一、“軟件工程”的典型定義1)1968年,第一屆NATO會議為了經(jīng)濟(jì)地獲得可靠的且能在實(shí)際機(jī)器上有效地運(yùn)營的軟件,而建立和使用完善的工程原理。2)IEEE/CS(電氣電子工程師協(xié)會/計(jì)算機(jī)科學(xué)分會)①1993年,將系統(tǒng)化的、規(guī)范的、可度量的方法應(yīng)用于軟件的開發(fā)、運(yùn)營和維護(hù)的過程,即將工程化應(yīng)用于軟件中。②對①中提到的各種方法的研究3)其他學(xué)者的定義Boehm:運(yùn)用現(xiàn)代科學(xué)技術(shù)知識來設(shè)計(jì)并構(gòu)造計(jì)算機(jī)程序及為開發(fā)、運(yùn)營和維護(hù)這些程序所必需的相關(guān)文獻(xiàn)資料。FritzBauer:建立并使用完善的工程化原則,以較經(jīng)濟(jì)的手段獲得能在實(shí)際機(jī)器上有效運(yùn)營的可靠軟件的一系列方法所有定義都強(qiáng)調(diào)在軟件開發(fā)過程中,應(yīng)用工程化原則的重要性幾個(gè)關(guān)于軟件工程本質(zhì)特性和基本原理的問題問題一:軟件工程合用范圍?問題二:軟件工程如何控制系統(tǒng)開發(fā)的復(fù)雜性的?問題三:以你的經(jīng)驗(yàn),舉例說明一個(gè)成熟的軟件通常采用什么方法來適應(yīng)現(xiàn)實(shí)世界的變化的?問題四:假設(shè)某軟件公司,能為同一個(gè)用戶開發(fā)兩個(gè)不同層次的軟件:一個(gè)層次的軟件功能非常強(qiáng)大,在滿足用戶所有需求的基礎(chǔ)上,還能提供大大超過用戶需求的其他更多更強(qiáng)的功能;另一個(gè)層次的軟件僅僅能滿足用戶需求,但沒有提供其他額外的功能。請問假如你是項(xiàng)目負(fù)責(zé)人,你會選擇為客戶開發(fā)那個(gè)層次的軟件?問題五:協(xié)同工作有什么重要性?:如何理解“在軟件工程領(lǐng)域中是由具有一種文化背景的人替具有另一種文化背景的人發(fā)明產(chǎn)品”這句話?問題六:某軟件開發(fā),由于時(shí)間和資金都非常緊迫,在需求分析人員非常認(rèn)真、仔細(xì)地做完需求分析之后,說:我們可以保證我們的需求分析對的性,不用花時(shí)間檢查了,設(shè)計(jì)人員可以直接拿著這份分析報(bào)告,立即開始設(shè)計(jì)。假如你是項(xiàng)目負(fù)責(zé)人,你會如何決定?為什么?問題七:在需求分析完畢并獲得了用戶的肯定,也通過了評審,進(jìn)入軟件設(shè)計(jì)階段之后,用戶的想法有了改變,提出了一個(gè)新的規(guī)定,此時(shí)假如你是項(xiàng)目負(fù)責(zé)人,應(yīng)當(dāng)如何做?二、軟件工程本質(zhì)特性(2)1)軟件工程關(guān)注于大型程序的構(gòu)造。2)軟件工程的中心課題是控制復(fù)雜性重要考慮:如何分解和集成為什么要分解:G.Miller,“7士2”原則3)軟件經(jīng)常變化4)開發(fā)軟件的效率非常重要5)和諧地合作是開發(fā)軟件的關(guān)鍵6)軟件必須有效地支持它的用戶7)在軟件工程領(lǐng)域中是由具有一種文化背景的人替具有另一種文化背景的人發(fā)明產(chǎn)品擴(kuò)展定義:軟件=知識+程序+數(shù)據(jù)+文檔§1.2.2軟件工程的基本原理B.W.Boehm,1983年提出:1)用分階段的生命周期計(jì)劃嚴(yán)格管理2)堅(jiān)持進(jìn)行階段評審3)實(shí)行嚴(yán)格的產(chǎn)品控制基線基線(baseline)控制4)采用現(xiàn)代程序設(shè)計(jì)技術(shù)5)結(jié)果應(yīng)能清楚地審查6)開發(fā)小組的人員應(yīng)當(dāng)少而精7)認(rèn)可不斷改善軟件工程實(shí)踐的必要性§1.2.3軟件工程方法學(xué)軟件工程涉及“管理”和“技術(shù)”兩方面內(nèi)容:管理——對人、財(cái)、物的合理使用和配置;技術(shù)——指軟件開發(fā)中采用的方法、工具和過程。什么是軟件工程方法學(xué)?通常把在軟件生命周期全過程中使用的一整套技術(shù)方法的集合稱為方法學(xué)(methodology),也稱為范型(paradigm)。一、軟件工程方法學(xué)三要素:工具、方法和過程要素一:軟件工程過程規(guī)定了完畢各項(xiàng)任務(wù)的工作環(huán)節(jié)。要素二:軟件工程方法完畢軟件開發(fā)的各項(xiàng)任務(wù)的技術(shù)方法,為軟件開發(fā)提供了“如何做”的技術(shù)。如項(xiàng)目計(jì)劃與估算、軟件系統(tǒng)需求分析、數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)總體結(jié)構(gòu)的設(shè)計(jì)、算法過程的設(shè)計(jì)、編碼、測試以及維護(hù)等。要素三:軟件工程工具計(jì)算機(jī)輔助軟件工程CASE(computerAidedsottwareEngineering),為軟件工程方法提供自動(dòng)或半自動(dòng)的軟件支撐環(huán)境。二、軟件工程方法學(xué)思想兩種:1、傳統(tǒng)方法學(xué)(生命周期方法學(xué)或結(jié)構(gòu)化范型)2、面向?qū)ο蠓椒?.傳統(tǒng)方法學(xué)(生命周期方法學(xué)或結(jié)構(gòu)化范型)采用結(jié)構(gòu)化技術(shù)(結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計(jì)和結(jié)構(gòu)化實(shí)現(xiàn))來完畢軟件開發(fā)的各項(xiàng)任務(wù);把軟件生命周期劃分為若干個(gè)階段,按順序完畢每個(gè)階段的任務(wù);每個(gè)階段開始和結(jié)束都有嚴(yán)格的標(biāo)準(zhǔn),對任何兩個(gè)相鄰的階段而言,前一個(gè)階段的結(jié)束標(biāo)準(zhǔn)就是后一階段的開始標(biāo)準(zhǔn);每一個(gè)階段結(jié)束之前都必須進(jìn)行正式嚴(yán)格的技術(shù)審查和管理復(fù)審傳統(tǒng)方法學(xué)的優(yōu)點(diǎn):分解任務(wù),分工合作,減少整個(gè)軟件開發(fā)工程的困難;采用科學(xué)的管理技術(shù)和良好的技術(shù)方法對每個(gè)階段成果都進(jìn)行嚴(yán)格的審查。保證了軟件的質(zhì)量。傳統(tǒng)方法學(xué)的缺陷:把數(shù)據(jù)和操作人為地分離成兩個(gè)獨(dú)立的部分,增長了軟件開發(fā)與維護(hù)的難度。2、面向?qū)ο蠓椒▽W(xué)(OO,Object-oriented)模擬人類習(xí)慣的思維方式,使開發(fā)軟件的方法與過程盡也許接近人類結(jié)識世界解決問題的方法與過程,從而使描述問題的問題空間(也稱為問題域)與實(shí)現(xiàn)解法的解空間(也稱為求解域)在結(jié)構(gòu)上盡也許一致。面向?qū)ο蠓椒▽W(xué)4要點(diǎn)把對象(object)作為融合了數(shù)據(jù)及在數(shù)據(jù)上的操作行為的統(tǒng)一的軟件構(gòu)件。把所有對象都劃提成類(class)。按照父類(或稱為基類)與子類(或稱為派生類)的關(guān)系,把若干個(gè)相關(guān)類組成一個(gè)層次結(jié)構(gòu)的系統(tǒng)(也稱為類等級)。對象彼此間僅能通過發(fā)送消息互相聯(lián)系。兩者區(qū)別傳統(tǒng)方法學(xué):強(qiáng)調(diào)自頂向下順序地完畢軟件開發(fā)的各階段任務(wù)。面向?qū)ο蠓椒ǎ菏欠e極地多次反復(fù)迭代的演化過程3軟件生命周期一、什么是軟件生命周期(lifecycle)指軟件孕育、誕生、成長、成熟、衰亡的生存過程GB一8567中將軟件生命周期分為7個(gè)階段:可行性研究和項(xiàng)目開發(fā)計(jì)劃;需求分析;慨要設(shè)計(jì);具體設(shè)計(jì);編碼;測試;維護(hù)其他分法,5個(gè)階段:需求定義、設(shè)計(jì)、編碼、測試及維護(hù);需求定義階段涉及可行性研究和項(xiàng)目開發(fā)計(jì)劃、需求分析;設(shè)計(jì)階段涉及慨要設(shè)計(jì)和具體設(shè)計(jì)。本教材對軟件生命周期的劃分1、軟件定義時(shí)期任務(wù):擬定軟件開發(fā)工程必須完畢的總目的;擬定工程的可行性;導(dǎo)出實(shí)現(xiàn)工程目的應(yīng)當(dāng)采用的策略及系統(tǒng)必須完畢的功能;估計(jì)完畢該項(xiàng)工程需要的資源和成本,并且制定工程進(jìn)度表。通常分為問題定義、可行性研究和需求分析三個(gè)階段。軟件定義時(shí)期的三個(gè)階段①問題定義階段回答:回答:“要解決的問題是什么?”②可行性研究階段回答:“對于上一個(gè)階段所擬定的問題有行得通的解決辦法嗎?③需求分析(RequirementAnalysis)回答“為了解決這個(gè)問題,目的系統(tǒng)必須做什么?用正式文檔準(zhǔn)確地記錄對目的系統(tǒng)的需求,這份文檔通常稱為規(guī)格說明書(specification)。2、軟件開發(fā)時(shí)期具體設(shè)計(jì)和實(shí)現(xiàn)前一個(gè)時(shí)期定義的軟件,通常分為四個(gè)階段:①總體設(shè)計(jì)(概要設(shè)計(jì))回答:“概括地說,應(yīng)當(dāng)如何實(shí)現(xiàn)目的系統(tǒng)?”根據(jù)需求分析,設(shè)計(jì)軟件的體系結(jié)構(gòu);定義結(jié)構(gòu)中的組成模塊。②具體設(shè)計(jì)(模塊設(shè)計(jì))回答:“應(yīng)當(dāng)如何具體地實(shí)現(xiàn)這個(gè)系統(tǒng)呢?”對每個(gè)模塊要完畢的工作進(jìn)行具體的描述,為源程序編寫打下基礎(chǔ)。編寫設(shè)計(jì)說明書,提交評審。兩者統(tǒng)稱系統(tǒng)設(shè)計(jì)。③程序編寫(Coding,Programming):把軟件設(shè)計(jì)轉(zhuǎn)換成計(jì)算機(jī)可以接受的程序代碼。④軟件測試(Testing):按規(guī)定的各項(xiàng)需求,逐項(xiàng)進(jìn)行有效性測試,決定已開發(fā)的軟件是否合格,能否交付用戶使用,涉及單元測試和組裝測試。兩者統(tǒng)稱系統(tǒng)實(shí)現(xiàn)3、運(yùn)營維護(hù)(軟件維護(hù))時(shí)期(Running/Maintenance)使軟件持久的滿足用戶的需要。涉及:改正性維護(hù):運(yùn)營中發(fā)現(xiàn)了軟件中的錯(cuò)誤需要修正。適應(yīng)性維護(hù):為了適應(yīng)變化了的軟件工作環(huán)境,需做適當(dāng)變更。完善性維護(hù):當(dāng)用戶有新的規(guī)定期,應(yīng)當(dāng)及時(shí)改善軟件以滿足用戶的規(guī)定。防止性維護(hù):即修改軟件為將來的維護(hù)活動(dòng)預(yù)先做準(zhǔn)備。幾個(gè)關(guān)干軟件生命周期階段的問題問題一:開發(fā)一個(gè)軟件大約需要多少資金、時(shí)間,將獲得什么效益一般是在哪個(gè)階段擬定?相對而言,在哪個(gè)階段與用戶交流最多?問題二:系統(tǒng)分析員重要工作在哪個(gè)時(shí)期?程序員重要工作在哪個(gè)時(shí)期?問題三:軟件定義時(shí)期的三個(gè)階段,各自回答什么關(guān)鍵問題?問題四:軟件開發(fā)時(shí)期有幾個(gè)階段?各自回答什么關(guān)鍵問題?問題五:軟件體系結(jié)構(gòu)最早是在哪個(gè)階段決定的?問題六:具體設(shè)計(jì)與程序編寫階段有什么樣的密切聯(lián)系?問題七:“軟件測試是為了驗(yàn)證系統(tǒng)的對的性”這句話對嗎?問題八:軟件維護(hù)有那幾種?各有什么功能?§1.4軟件過程(SoftwareProcess)1、什么是軟件過程為了獲得高質(zhì)量軟件所需要完畢的一系列任務(wù)的框架,它規(guī)定了完畢各項(xiàng)任務(wù)的工作環(huán)節(jié)。ISO9000的定義:使用資源將輸入轉(zhuǎn)化為輸出的活動(dòng)所構(gòu)成的系統(tǒng)?!跋到y(tǒng)”是互相關(guān)聯(lián)或互相作用的一組要素。過程是軟件工程三要素之一。通常用軟件生命周期模型來描述。2、什么是軟件生命周期模型又稱:軟件開發(fā)模型/軟件過程模型/軟件工程范型。指軟件項(xiàng)目從需求定義直至軟件經(jīng)使用后廢棄為止,跨越整個(gè)生存周期的系統(tǒng)開發(fā)、運(yùn)作和維護(hù)所實(shí)行的所有過程、活動(dòng)和任務(wù)的結(jié)構(gòu)框架。常見的有:瀑布模型、演化模型、螺旋模型、噴泉模型、智能模型§1.4.1瀑布模型(waterfallmodel)1970年,由W.Royce提出一、瀑布模型的過程1、傳統(tǒng)的瀑布模型從上一階段接受本階段的工作對象,作為輸入;運(yùn)用輸入,完畢本階段活動(dòng)的內(nèi)容.本階段的工作成果作為輸出傳入下一階段。2瀑布模型—實(shí)際的瀑布模型增長了一個(gè)評審活動(dòng),評審每個(gè)階段完畢的活動(dòng),若得到確認(rèn),則進(jìn)行下一階段的活動(dòng);否則返回前一階段,甚至更前階段返工;二、瀑布模型特點(diǎn)階段間具有順序性和依賴性推遲實(shí)現(xiàn)的觀點(diǎn)質(zhì)量保證的觀點(diǎn)三、瀑布模型優(yōu)缺陷優(yōu)點(diǎn):可逼迫開發(fā)人員采用規(guī)范的方法;嚴(yán)格地規(guī)定了每個(gè)階段必須提交的文檔;規(guī)定每個(gè)階段的所有產(chǎn)品都必須通過質(zhì)量保證小組的仔細(xì)驗(yàn)證;缺陷:無法解決軟件需求不明確或不準(zhǔn)確的問題;也許導(dǎo)致最終開發(fā)的產(chǎn)品不能真正滿足用戶需要。瀑布模型比較適合開發(fā)需求明確的軟件?!?.4.2快速原型模型1、什么是“原型”?原型是快速實(shí)現(xiàn)和運(yùn)營的初期版本,反映最終系統(tǒng)部分重要特性。常見的原型實(shí)例:人機(jī)界面;系統(tǒng)重要功能。優(yōu)點(diǎn):1、通
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版碧桂園物業(yè)管理區(qū)域內(nèi)設(shè)施維護(hù)合同范本3篇
- 2024版智能辦公樓弱電工程包工合同
- 2024年上半年鎮(zhèn)衛(wèi)生院年度工作總結(jié)例文(2篇)
- 2024年公司采購文員工作總結(jié)模版(3篇)
- 2024年幼兒園老師計(jì)劃(4篇)
- 2024年班主任個(gè)人工作計(jì)劃(2篇)
- 2024年員工試用期滿工作總結(jié)模版(2篇)
- 后勤部工作制度模版(3篇)
- GB/T 44957-2024人工影響天氣作業(yè)點(diǎn)防雷技術(shù)規(guī)范
- 《紡織復(fù)合材料及其應(yīng)用研究》7800字(論文)
- 《報(bào)批報(bào)建工作》課件
- 2024年商業(yè)流通倉儲服務(wù)項(xiàng)目立項(xiàng)申請報(bào)告模板
- 統(tǒng)編版(2024版)七年級上冊歷史期末復(fù)習(xí)課件
- 國家開放大學(xué)??啤稒C(jī)械制圖》一平臺機(jī)考真題及答案(第一套)
- 2024青海海東市水務(wù)集團(tuán)限責(zé)任公司招聘27人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 幼兒園大班音樂《獻(xiàn)上最美的哈達(dá)》課件
- 2024年世界職業(yè)院校技能大賽高職組“智慧金融組”賽項(xiàng)參考試題庫(含答案)
- 2024房地產(chǎn)中介經(jīng)紀(jì)人勞動(dòng)合同
- 光伏發(fā)電系統(tǒng)設(shè)計(jì)
- 2024-2030年中國電梯維修保養(yǎng)行業(yè)運(yùn)營現(xiàn)狀及投資戰(zhàn)略研究報(bào)告
- 2024年全民(生態(tài)日環(huán)境保護(hù)及相關(guān)規(guī)定)知識考試題庫與答案
評論
0/150
提交評論