軟件工程概述 課件_第1頁(yè)
軟件工程概述 課件_第2頁(yè)
軟件工程概述 課件_第3頁(yè)
軟件工程概述 課件_第4頁(yè)
軟件工程概述 課件_第5頁(yè)
已閱讀5頁(yè),還剩155頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

《軟件工程》

SoftwareEngineering葛文eng429@126.com信息工程學(xué)院《軟件工程》SoftwareEngineering葛引言Microsoft的比爾蓋茨在一次展覽會(huì)的演講中談到:假如GM(美國(guó)通用汽車(chē)公司,別克、雪佛蘭、凱迪拉克)的技術(shù)能像計(jì)算機(jī)技術(shù)那樣發(fā)展,我們現(xiàn)在應(yīng)該能用25美元買(mǎi)到一輛1加侖汽油跑1000英里的汽車(chē)。---《揚(yáng)子晚報(bào)》引言Microsoft的比爾蓋茨在一次展覽會(huì)的演講中談到:假針對(duì)比爾蓋茨的講話(huà),GM反唇相譏:如果GM發(fā)展的技術(shù)像Microsoft的軟件那樣,我們現(xiàn)在開(kāi)的汽車(chē)會(huì)有以下特點(diǎn):你的汽車(chē)可能毫無(wú)道理的每天拋錨兩次每次公路上重新畫(huà)線(xiàn)時(shí),你都得買(mǎi)輛新車(chē)有時(shí)候你的車(chē)在高速公路上莫名其妙的熄火,你必須accept,然后restart有時(shí)候你的車(chē)在左拐彎時(shí)突然shutdown了,無(wú)法restart,你必須重新安裝(reinstall)發(fā)動(dòng)機(jī)當(dāng)你買(mǎi)了“轎車(chē)95”或“轎車(chē)NT”后,每次車(chē)上只能坐一個(gè)人,你要給其他的人再買(mǎi)椅子Macintosh牌汽車(chē)更可靠、更便宜、更快、也更容易開(kāi),但是只能在5%的道路上行駛油量、水溫和其它警告燈將由一個(gè)“GENERALCARFAILURE”的警告燈所代替新座椅要求大家屁股的尺寸相同氣囊系統(tǒng)彈出前詢(xún)問(wèn)“Areyousure?”,要求你加以確認(rèn)有時(shí)候你的汽車(chē)會(huì)鎖死車(chē)門(mén)使你無(wú)法進(jìn)入汽車(chē),你得不停的提門(mén)把手、拿鑰匙捅、晃天線(xiàn),直到打開(kāi)車(chē)門(mén)針對(duì)比爾蓋茨的講話(huà),GM反唇相譏:如果GM發(fā)我們且不考慮GM的言辭是否過(guò)于偏激,但Microsoft公司作為全球最大的計(jì)算機(jī)軟件生產(chǎn)商,擁有一大批優(yōu)秀的項(xiàng)目經(jīng)理、軟件工程師、程序員,具有豐富的軟件開(kāi)發(fā)和項(xiàng)目管理經(jīng)驗(yàn),開(kāi)發(fā)出來(lái)的軟件仍然不能很好的保證質(zhì)量,這是不爭(zhēng)的事實(shí)。我們幾乎每個(gè)人在使用Windows操作系統(tǒng)時(shí),都碰到過(guò)死機(jī)現(xiàn)象這是為什么呢?我們且不考慮GM的言辭是否過(guò)于偏激,但Microsoft公司與硬件相比,軟件的本質(zhì)特征是什么?為什么硬件的可靠性可以達(dá)到很高的程度,而軟件卻不能做到bug-free?什么樣的軟件可以稱(chēng)作是一個(gè)好軟件,或者說(shuō)好軟件具有什么樣的特點(diǎn)?目前存在哪些方法和技術(shù)能夠有效地提高軟件的質(zhì)量,做出好軟件?與硬件相比,軟件的本質(zhì)特征是什么?軟件工程簡(jiǎn)介軟件工程是計(jì)算機(jī)專(zhuān)業(yè)的一門(mén)重要的專(zhuān)業(yè)基礎(chǔ)課,它對(duì)于培養(yǎng)學(xué)生的軟件素質(zhì),提高學(xué)生的軟件開(kāi)發(fā)能力與軟件項(xiàng)目管理能力具有重要的意義。1995年,StandishGroup針對(duì)系統(tǒng)開(kāi)發(fā)成功的研究表明,所有的開(kāi)發(fā)項(xiàng)目中有32%的項(xiàng)目在它們結(jié)束之前被中止。此外多于一半的軟件項(xiàng)目花費(fèi)的成本相當(dāng)于原來(lái)預(yù)算的2倍。軟件工程簡(jiǎn)介軟件工程是計(jì)算機(jī)專(zhuān)業(yè)的一門(mén)重要的專(zhuān)業(yè)基礎(chǔ)課,它對(duì)軟件工程是軟件工程專(zhuān)業(yè)的一門(mén)核心課程。通過(guò)本課程的學(xué)習(xí),使學(xué)生掌握系統(tǒng)的軟件開(kāi)發(fā)理論、技術(shù)和方法,使用正確的工程方法開(kāi)發(fā)出成本低、可靠性好并在機(jī)器上能高效運(yùn)行的軟件,為今后從事軟件開(kāi)發(fā)和維護(hù)打下堅(jiān)實(shí)的基礎(chǔ)。課程的性質(zhì)、目的軟件工程是軟件工程專(zhuān)業(yè)的一門(mén)核心課程。課程的性質(zhì)、目的學(xué)生任務(wù)

通過(guò)本課程的學(xué)習(xí),使學(xué)生能真正了解軟件開(kāi)發(fā)的整個(gè)過(guò)程。學(xué)生要結(jié)合實(shí)際軟件項(xiàng)目,從問(wèn)題定義開(kāi)始,經(jīng)過(guò)可行性研究、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼直到最后要對(duì)自己開(kāi)發(fā)的軟件進(jìn)行測(cè)試,經(jīng)歷一個(gè)軟件開(kāi)發(fā)的全過(guò)程,掌握軟件開(kāi)發(fā)的基本技能和方法。學(xué)生任務(wù)通過(guò)本課程的學(xué)習(xí),使學(xué)生能真正了解軟件開(kāi)發(fā)的整個(gè)過(guò)主要內(nèi)容軟件工程的基本概念軟件開(kāi)發(fā)過(guò)程、活動(dòng)、方法學(xué)軟件開(kāi)發(fā)各階段的任務(wù)、技術(shù)、方法軟件開(kāi)發(fā)的兩種方法:傳統(tǒng)與面向?qū)ο蠓椒ㄜ浖臏y(cè)試與維護(hù)軟件開(kāi)發(fā)的項(xiàng)目管理軟件質(zhì)量保證主要內(nèi)容軟件工程的基本概念教材本書(shū)全面系統(tǒng)地講述了軟件工程的概念、原理和典型的方法學(xué),并通過(guò)分析一個(gè)實(shí)際案例“開(kāi)放實(shí)驗(yàn)室管理系統(tǒng)”,幫助理解軟件需求分析與建模以及設(shè)計(jì)與實(shí)現(xiàn)的方法和過(guò)程,特別適合用做應(yīng)用型人才培養(yǎng)的教材。網(wǎng)絡(luò)資源:/netclass教材本書(shū)全面系統(tǒng)地講述了軟件工程的概念、原理和典型的方法學(xué),參考書(shū)SoftwareEngineering,IanSommerville,PearsonEducationAsia《軟件工程基礎(chǔ)與實(shí)用教材》沈文軒等《軟件工程導(dǎo)論》張海藩,清華大學(xué)出版社《軟件工程—原理、方法與應(yīng)用》史濟(jì)民,高等教育出版社《軟件工程技術(shù)概論》朱三元,科學(xué)出版社《實(shí)用軟件工程》鄭人杰,清華出版社《現(xiàn)代軟件工程》(上中冊(cè))周之英,科學(xué)出版社《軟件工程理論與實(shí)踐》譯文,高教出版社《現(xiàn)代軟件工程》陳松橋,北方交大出版社參考書(shū)SoftwareEngineering,IanS章節(jié)安排章次各章標(biāo)題名稱(chēng)講授學(xué)時(shí)第一章軟件工程學(xué)概述3第二章可行性研究1第三章需求分析4第四章面向?qū)ο蠓治?第五章總體設(shè)計(jì)4第六章詳細(xì)設(shè)計(jì)4第七章面向?qū)ο笤O(shè)計(jì)4第八章實(shí)現(xiàn)4第九章維護(hù)2第十章軟件項(xiàng)目管理2章節(jié)安排章次各章標(biāo)題名稱(chēng)講授學(xué)時(shí)第一章軟件工程學(xué)概述3第二章學(xué)習(xí)要求要求學(xué)生有刻苦學(xué)習(xí),持之以恒的精神。本課程的性質(zhì)與其說(shuō)是一門(mén)技術(shù)性很強(qiáng)的課程,不如說(shuō)更像一門(mén)管理學(xué)科的課程,很多規(guī)定都是國(guó)內(nèi)外大師的經(jīng)驗(yàn)總結(jié),不能誤認(rèn)為無(wú)用或現(xiàn)在用不上而放棄學(xué)習(xí)。要求學(xué)生能夠?qū)W以致用,善于將理論與實(shí)際結(jié)合,才能鞏固課內(nèi)學(xué)到的知識(shí),并能融會(huì)貫通。學(xué)習(xí)要求要求學(xué)生有刻苦學(xué)習(xí),持之以恒的精神。本課程的性質(zhì)與其學(xué)習(xí)建議在正文中介紹了不少軟件工程的基本原則和基本方法,在學(xué)習(xí)時(shí),可以根據(jù)你的實(shí)踐,認(rèn)真思考一下為什么。不但知其然,而且知其所以然,這樣會(huì)記得牢一些,不會(huì)看過(guò)就忘。學(xué)習(xí)建議在正文中介紹了不少軟件工程的基本原則和基本方法,在學(xué)考核考試課程總成績(jī)=平時(shí)成績(jī)(10%)+實(shí)驗(yàn)成績(jī)(30%)+考試成績(jī)(60%)考核考試課程第一講軟件工程學(xué)概述本章學(xué)習(xí)目標(biāo)1.了解軟件的概念2.了解軟件開(kāi)發(fā)的發(fā)展歷程3.掌握軟件工程的概念、原理和基本內(nèi)容4.掌握軟件生命周期5.理解軟件過(guò)程模型第一講軟件工程學(xué)概述本章學(xué)習(xí)目標(biāo)1.了解軟件的概念2.了解1軟件軟件由計(jì)算機(jī)程序、數(shù)據(jù)及文檔組成。程序是能夠完成預(yù)定功能和性能的一組計(jì)算機(jī)指令數(shù)據(jù)是程序在執(zhí)行過(guò)程需要輸入、處理和輸出的內(nèi)容和結(jié)構(gòu)文檔是描述程序的設(shè)計(jì)和使用的部分1軟件軟件由計(jì)算機(jī)程序、數(shù)據(jù)及文檔組成。軟件的特點(diǎn)抽象性軟件生產(chǎn)無(wú)明顯制造過(guò)程無(wú)磨損性對(duì)計(jì)算機(jī)硬件依賴(lài)性軟件的手工開(kāi)發(fā)方式軟件本身復(fù)雜性軟件的高成本(德國(guó)的一款專(zhuān)業(yè)設(shè)計(jì)3D的軟件:3DMAX(正版)

官方售價(jià):2000000元RMB)軟件的特點(diǎn)抽象性軟件的分類(lèi)軟件與硬件、數(shù)據(jù)庫(kù)、人、過(guò)程等共同構(gòu)成計(jì)算機(jī)系統(tǒng)。軟件種類(lèi)可以從功能、規(guī)模、工作方式、服務(wù)對(duì)象、實(shí)驗(yàn)頻度、失效影響六個(gè)方面進(jìn)行劃分:

按功能分類(lèi)應(yīng)用軟件:管理軟件、實(shí)時(shí)軟件、科學(xué)計(jì)算、數(shù)據(jù)處理、嵌入式軟件等系統(tǒng)軟件:操作系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、編譯器、工具軟件等軟件的分類(lèi)軟件與硬件、數(shù)據(jù)庫(kù)、人、過(guò)程等共同構(gòu)成計(jì)算機(jī)系統(tǒng)。中國(guó)的軟件產(chǎn)業(yè)主權(quán)大國(guó)必須建立基于自主技術(shù)的、完整的軟件產(chǎn)業(yè)體系。軟件本國(guó)提供率:中國(guó)1/3左右,美國(guó)97%。中國(guó)盜版軟件比例大軟件人才結(jié)構(gòu)不合理,缺乏中高級(jí)軟件人才,軟件人員缺乏軟件工程化的概念。中國(guó)的軟件產(chǎn)業(yè)主權(quán)大國(guó)必須建立基于自主技術(shù)的、完整的軟件產(chǎn)業(yè)軟件發(fā)展階段時(shí)間軟件20世紀(jì)60年代中期前軟件=程序60年代中期至70年代中期前軟件=程序+使用說(shuō)明出現(xiàn)軟件危機(jī)70年代中期后軟件=程序+數(shù)據(jù)+文檔軟件工程時(shí)代軟件發(fā)展階段時(shí)間軟件20世紀(jì)60年代中期前軟件=程序60年代2軟件危機(jī)軟件危機(jī)指的是在計(jì)算機(jī)軟件的開(kāi)發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題。軟件危機(jī)的主要特征

軟件價(jià)格在整個(gè)項(xiàng)目投入中的比例不斷升高;

軟件開(kāi)發(fā)成本嚴(yán)重超標(biāo);

軟件開(kāi)發(fā)周期大大超過(guò)規(guī)定日期;

軟件質(zhì)量難于保證;

軟件修改、維護(hù)困難;

失敗的根本原因在于:開(kāi)發(fā)人員寫(xiě)出的東西達(dá)不到用戶(hù)要求(人的問(wèn)題、技術(shù)問(wèn)題)2軟件危機(jī)軟件危機(jī)指的是在計(jì)算機(jī)軟件的開(kāi)發(fā)和維護(hù)過(guò)程中所遇到產(chǎn)生軟件危機(jī)的原因計(jì)算機(jī)應(yīng)用發(fā)展軟件數(shù)量多規(guī)模大,功能復(fù)雜個(gè)體化軟件開(kāi)發(fā)方法無(wú)開(kāi)發(fā)過(guò)程指導(dǎo)無(wú)開(kāi)發(fā)過(guò)程管理軟件成本高、質(zhì)量低、維護(hù)困難軟件危機(jī)客觀因素主觀因素主客觀不相適應(yīng)產(chǎn)生軟件危機(jī)的原因計(jì)算機(jī)應(yīng)用發(fā)展軟件數(shù)量多個(gè)體化軟件無(wú)開(kāi)發(fā)過(guò)軟件工程改正一個(gè)問(wèn)題需付出的代價(jià)需求分析結(jié)構(gòu)設(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(美元)(人天)軟件工程改正一個(gè)問(wèn)題需付出的代價(jià)需結(jié)構(gòu)設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼解決辦法管理措施項(xiàng)目管理配置管理過(guò)程管理質(zhì)量控制

技術(shù)措施開(kāi)發(fā)過(guò)程開(kāi)發(fā)技術(shù)與方法開(kāi)發(fā)工具

軟件工程學(xué)(軟件產(chǎn)品開(kāi)發(fā)工程)用工程化的理論、方法和技術(shù)來(lái)管理軟件開(kāi)發(fā)過(guò)程,從管理和技術(shù)兩方面措施對(duì)軟件開(kāi)發(fā)進(jìn)行規(guī)范化和理論研究即產(chǎn)生了軟件工程學(xué)科解決辦法管理措施技術(shù)措施軟件工程學(xué)用工程化的理3軟件工程1968年德國(guó)人Bauer在北大西洋公約組織會(huì)議上的定義:"建立并使用完善的工程化原則,以較經(jīng)濟(jì)的手段獲得能在實(shí)際機(jī)器上有效運(yùn)行的可靠軟件的一系列方法"。1983年IEEE的軟件工程定義:"軟件工程是開(kāi)發(fā),運(yùn)行,維護(hù)和修復(fù)軟件的系統(tǒng)方法"。1993年IEEE的一個(gè)更加綜合的定義:"將系統(tǒng)化的,規(guī)范的,可度量的方法應(yīng)用于軟件的開(kāi)發(fā),運(yùn)行和維護(hù)的過(guò)程,即將工程化應(yīng)用于軟件中"。3軟件工程1968年德國(guó)人Bauer在北大西洋公約組織軟件工程的基本原理1983年,著名軟件工程專(zhuān)家B.W.Boehm提出了七條獲得公認(rèn)的軟件工程的基本原理:(1)分階段的生命周期計(jì)劃嚴(yán)格管理性。(2)堅(jiān)持進(jìn)行階段評(píng)審。(3)實(shí)行嚴(yán)格的產(chǎn)品控制。(4)采用現(xiàn)代程序設(shè)計(jì)技術(shù)。(5)結(jié)果應(yīng)能清楚地審查。

(6)開(kāi)發(fā)小組的人員應(yīng)少而精。(7)承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性。軟件工程的基本原理1983年,著名軟件工程專(zhuān)家B.W.Boe軟件工程框架給出了軟件工程三個(gè)主要方面。軟件工程目標(biāo)—包括可用性、正確性和合算性,規(guī)定了軟件工程實(shí)踐的結(jié)果(即軟件)應(yīng)具有的基本性質(zhì);軟件工程過(guò)程—包含的基本活動(dòng)有需求、分析與設(shè)計(jì)、實(shí)現(xiàn)、確認(rèn)與測(cè)試、維護(hù)與支持;軟件工程的四條原則--采用適宜的開(kāi)發(fā)模型,使用恰當(dāng)?shù)拈_(kāi)發(fā)方法,提供高質(zhì)量的工程支持,實(shí)施有效的工程管理,從四個(gè)方面指導(dǎo)每一項(xiàng)工程的活動(dòng),以實(shí)現(xiàn)軟件工程目標(biāo)。軟件工程框架軟件工程框架給出了軟件工程三個(gè)主要方面。軟件工程框架軟件工程的目標(biāo):追求高質(zhì)量高效率

實(shí)現(xiàn)目標(biāo)的過(guò)程:完成產(chǎn)品加工的過(guò)程。

進(jìn)行過(guò)程應(yīng)遵守的原則:行進(jìn)中的軌道約束。

可用性性性確正合算選取適宜的開(kāi)發(fā)模型采用合適的設(shè)計(jì)方法提供高質(zhì)量的工程支持重視軟件工程的管理基本過(guò)程支持過(guò)程組織過(guò)程目標(biāo)過(guò)程原則軟件工程的目標(biāo):追求高質(zhì)量高效率

實(shí)現(xiàn)目標(biāo)的過(guò)程:完成產(chǎn)品軟件工程的三要素R.Pressman在他的《軟件工程》教程中指出:軟件工程的三個(gè)要素是方法、工具、過(guò)程。方法是完成軟件開(kāi)發(fā)的各項(xiàng)任務(wù)的技術(shù)方法,回答“如何做”的問(wèn)題;工具是為方法的運(yùn)用提供自動(dòng)的或半自動(dòng)的軟件支撐環(huán)境;過(guò)程是為了獲得高質(zhì)量的軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。軟件工程的三要素R.Pressman在他的《軟件工程》教程軟件工程的目標(biāo)與原則軟件工程的主要目標(biāo):提高軟件的質(zhì)量和軟件生產(chǎn)率。

軟件工程需要達(dá)到的基本目標(biāo):

付出較低的開(kāi)發(fā)成本達(dá)到要求的軟件功能取得較好的軟件性能開(kāi)發(fā)的軟件易于移植需要較低的維護(hù)費(fèi)用能按時(shí)完成開(kāi)發(fā),及時(shí)交付使用軟件工程的目標(biāo)與原則軟件工程的主要目標(biāo):提高軟件的質(zhì)量和軟件在軟件開(kāi)發(fā)過(guò)程中必須遵循的軟件工程原則:抽象與自頂向下、逐層細(xì)化采用分層抽象的方法,有效控制軟件開(kāi)發(fā)的復(fù)雜性。模塊化把問(wèn)題分解為若干較小的較易解決的模塊,有助于信息隱蔽和抽象。信息隱蔽和數(shù)據(jù)封裝將模塊中的軟件設(shè)計(jì)決策封裝在模塊內(nèi)部,使得模塊實(shí)現(xiàn)與使用分離,有助于控制修改局部化。

在軟件開(kāi)發(fā)過(guò)程中必須遵循的軟件工程原則:局部化在一個(gè)物理模塊內(nèi)集中邏輯上相互關(guān)聯(lián)的計(jì)算機(jī)資源,促使聚合具有特定目的的事物。一致性整個(gè)軟件系統(tǒng)的模塊使用一致的設(shè)計(jì)策略、編程風(fēng)格,保持程序內(nèi)部接口的一致性、軟件與硬件接口的一致性、系統(tǒng)規(guī)格說(shuō)明與系統(tǒng)行為的一致性。完備性軟件系統(tǒng)中不丟失任何成分??沈?yàn)證性系統(tǒng)分解應(yīng)當(dāng)遵循易檢查、易測(cè)試和易評(píng)審的原則,以便保證系統(tǒng)的正確性。局部化在一個(gè)物理模塊內(nèi)集中邏輯上相互關(guān)聯(lián)的計(jì)算機(jī)資源軟件工程學(xué)“軟件工程學(xué)”是一門(mén)交叉學(xué)科涉及計(jì)算機(jī)科學(xué)、管理科學(xué)、工程學(xué)和數(shù)學(xué)。軟件工程則是培養(yǎng)軟件工程師。軟件工程學(xué)軟件開(kāi)發(fā)技術(shù)軟件開(kāi)發(fā)方法學(xué)軟件工具軟件工程環(huán)境軟件工程管理軟件管理學(xué)軟件經(jīng)濟(jì)學(xué)軟件工程學(xué)“軟件工程學(xué)”是一門(mén)交叉學(xué)科涉及計(jì)算機(jī)科學(xué)、管理科71.3軟件工程方法學(xué)軟件工程方法學(xué)是軟件開(kāi)發(fā)的系統(tǒng)化方法,是一套完整的軟件開(kāi)發(fā)技術(shù),包括原則、方法、過(guò)程和工具,是每一階段活動(dòng)、產(chǎn)品、驗(yàn)收的步驟和完成準(zhǔn)則。軟件工程方法學(xué)應(yīng)用最廣泛的是結(jié)構(gòu)化方法和面向?qū)ο蠓椒ā?1.3軟件工程方法學(xué)軟件工程方法學(xué)是軟件開(kāi)發(fā)的系統(tǒng)化方法7結(jié)構(gòu)化方法(SM,StructuredMethod)是傳統(tǒng)的軟件開(kāi)發(fā)方法,基本思想是:用系統(tǒng)工程的思想和工程化的方法,按照用戶(hù)至上的原則,結(jié)構(gòu)化、模塊化、自頂向下地對(duì)系統(tǒng)進(jìn)行分析和設(shè)計(jì),把一個(gè)復(fù)雜問(wèn)題的求解過(guò)程分階段進(jìn)行,使得每個(gè)階段處理的問(wèn)題都控制在容易理解的范圍內(nèi)。結(jié)構(gòu)化方法7結(jié)構(gòu)化方法(SM,StructuredMethod)是傳71.結(jié)構(gòu)化方法模型71.結(jié)構(gòu)化方法模型72.結(jié)構(gòu)化方法過(guò)程(1)結(jié)構(gòu)化分析(SA,StructuredAnalysis)。(2)結(jié)構(gòu)化設(shè)計(jì)(SD,StructuredDesign)。(3)結(jié)構(gòu)化實(shí)現(xiàn)(SP,StructuredProgramming)。3.結(jié)構(gòu)化方法特點(diǎn)(1)嚴(yán)格的分階段計(jì)劃。(2)瀑布式開(kāi)發(fā)模式。(3)嚴(yán)格的技術(shù)審查和管理復(fù)審。(4)各階段采用結(jié)構(gòu)化技術(shù)。72.結(jié)構(gòu)化方法過(guò)程3.結(jié)構(gòu)化方法特點(diǎn)7面向?qū)ο蠓椒ǎ∣bject-OrientedMethod)是一種把面向?qū)ο笏枷霊?yīng)用于軟件開(kāi)發(fā)過(guò)程,來(lái)指導(dǎo)開(kāi)發(fā)活動(dòng)的系統(tǒng)方法,簡(jiǎn)稱(chēng)OO(Object-Oriented)方法,是建立在“對(duì)象”概念基礎(chǔ)上的方法學(xué)。所謂面向?qū)ο缶褪腔趯?duì)象概念,以對(duì)象為中心,以類(lèi)和繼承為構(gòu)造機(jī)制,認(rèn)識(shí)、理解、刻畫(huà)客觀世界,設(shè)計(jì)、構(gòu)建相應(yīng)的軟件系統(tǒng)。面向?qū)ο蠓椒?面向?qū)ο蠓椒ǎ∣bject-OrientedMethod72面向?qū)ο蠓椒嫦驅(qū)ο蠓椒P?2面向?qū)ο蠓椒嫦驅(qū)ο蠓椒P?2.面向?qū)ο蠓椒ㄟ^(guò)程(1)面向?qū)ο蠓治觯∣OA,Object-OrientedAnalysis)。(2)面向?qū)ο笤O(shè)計(jì)(OOD,Object-OrientedDesign)。(3)面向?qū)ο蟮木幊蹋∣OP,Object-OrientedPrograming)。(4)面向?qū)ο鬁y(cè)試(OOT,Object-OrientedTest)。3.面向?qū)ο蠓椒ㄌ攸c(diǎn)(1)以對(duì)象作為基本的軟件構(gòu)件。(2)軟件定義和實(shí)現(xiàn)的統(tǒng)一。(3)重視軟件復(fù)用。(4)通過(guò)逐步演化來(lái)完成軟件開(kāi)發(fā)。72.面向?qū)ο蠓椒ㄟ^(guò)程3.面向?qū)ο蠓椒ㄌ攸c(diǎn)7敏捷方法是一種針對(duì)用戶(hù)需求迅速變化的現(xiàn)實(shí)情況,采用短周期交付形式和協(xié)作開(kāi)發(fā)的輕量級(jí)軟件開(kāi)發(fā)方式。相對(duì)于“非敏捷”,更強(qiáng)調(diào)程序員團(tuán)隊(duì)與業(yè)務(wù)專(zhuān)家之間的緊密協(xié)作、面對(duì)面的溝通、頻繁交付新的軟件版本、緊湊而自我組織型的團(tuán)隊(duì)、適應(yīng)需求變化的代碼編寫(xiě),也更注重軟件開(kāi)發(fā)中人的作用。敏捷方法7敏捷方法是一種針對(duì)用戶(hù)需求迅速變化的現(xiàn)實(shí)情況,采用短周期交71.敏捷方法特點(diǎn)(1)追求軟件交付使用這一終極目標(biāo)。(2)強(qiáng)調(diào)全面合作和交流。(3)重視軟件開(kāi)發(fā)中人的個(gè)性。(4)強(qiáng)調(diào)團(tuán)隊(duì)的力量。(5)靈活采用各種開(kāi)發(fā)和管理方式。71.敏捷方法特點(diǎn)72.敏捷方法原則(1)最優(yōu)先的目標(biāo)是通過(guò)盡早交付有價(jià)值的軟件來(lái)滿(mǎn)足用戶(hù)需求。(2)即使在開(kāi)發(fā)后期,也能適應(yīng)需求變化,能夠駕馭變化,幫助用戶(hù)取得競(jìng)爭(zhēng)優(yōu)勢(shì)。(3)頻繁交付可使用的軟件,時(shí)間間隔從幾周到幾個(gè)月,間隔越短越好。(4)整個(gè)開(kāi)發(fā)過(guò)程中,業(yè)務(wù)人員和開(kāi)發(fā)者應(yīng)該在一起工作。(5)以積極主動(dòng)的員工為主體進(jìn)行軟件開(kāi)發(fā),并且提供適宜環(huán)境、滿(mǎn)足員工需要、信任員工工作。(6)開(kāi)發(fā)團(tuán)隊(duì)內(nèi)外最有效率和效果的信息傳達(dá)方式是面對(duì)面交流。72.敏捷方法原則72.敏捷方法原則(7)可用的軟件是進(jìn)度的主要度量標(biāo)準(zhǔn)。(8)提倡可持續(xù)開(kāi)發(fā),管理者、開(kāi)發(fā)人員和用戶(hù)應(yīng)始終保持穩(wěn)定的節(jié)奏。(9)簡(jiǎn)單,盡可能減少工作量至關(guān)重要。(10)強(qiáng)調(diào)先進(jìn)技術(shù)和良好設(shè)計(jì),以不斷提高敏捷性。(11)最好的架構(gòu)、需求和設(shè)計(jì)來(lái)源于自我組織的團(tuán)隊(duì)。(12)團(tuán)隊(duì)定期總結(jié)提高效率的方法,并相應(yīng)調(diào)整團(tuán)隊(duì)行為。72.敏捷方法原則ISO9000定義:軟件工程過(guò)程是把輸入轉(zhuǎn)化為輸出的一組彼此相關(guān)的資源和活動(dòng)。從軟件開(kāi)發(fā)的觀點(diǎn)看,它就是使用適當(dāng)?shù)馁Y源(包括人員、硬軟件工具、時(shí)間等),為開(kāi)發(fā)軟件進(jìn)行的一組開(kāi)發(fā)活動(dòng),在過(guò)程結(jié)束時(shí)將輸入(用戶(hù)要求)轉(zhuǎn)化為輸出(軟件產(chǎn)品)。4軟件工程過(guò)程與軟件生存周期ISO9000定義:軟件工程過(guò)程是把輸入轉(zhuǎn)化為輸出的一組彼軟件生存周期各階段的主要任務(wù)

問(wèn)題的定義及規(guī)劃需求分析軟件設(shè)計(jì)程序編碼軟件測(cè)試運(yùn)行維護(hù)軟件生存周期各階段的主要任務(wù)

問(wèn)題的定義及規(guī)劃開(kāi)發(fā)策劃。主要完成問(wèn)題定義、可行性論證、制定開(kāi)發(fā)計(jì)劃和項(xiàng)目申報(bào)工作,明確“要解決的問(wèn)題是什么”。需求分析。需求分析和定義階段任務(wù)不是具體地解決問(wèn)題,而是確定軟件須具備的具體功能、性能等,即“必須做什么”及其他指標(biāo)要求。概要設(shè)計(jì)。主要設(shè)計(jì)軟件的結(jié)構(gòu),結(jié)構(gòu)的組成模塊,模塊的層次結(jié)構(gòu)、調(diào)用關(guān)系及功能。并設(shè)計(jì)總體數(shù)據(jù)結(jié)構(gòu)等。

開(kāi)發(fā)策劃。主要完成問(wèn)題定義、可行性論證、制定開(kāi)發(fā)計(jì)劃和項(xiàng)目申(4)詳細(xì)設(shè)計(jì)。對(duì)模塊功能、性能、可靠性等進(jìn)行具體技術(shù)描述,并轉(zhuǎn)化為過(guò)程描述。(5)編寫(xiě)程序。又稱(chēng)編碼,將模塊的控制結(jié)構(gòu)轉(zhuǎn)換成程序代碼。(6)測(cè)試。為了保證軟件需求和質(zhì)量,在設(shè)計(jì)測(cè)試用例基礎(chǔ)上對(duì)軟件進(jìn)行檢測(cè)(7)運(yùn)行維護(hù)。對(duì)交付并投入使用的軟件進(jìn)行各種維護(hù),并記錄保存文檔。(4)詳細(xì)設(shè)計(jì)。對(duì)模塊功能、性能、可靠性等進(jìn)行具體技術(shù)描步驟任務(wù)及說(shuō)明參與者生成文檔或程序可行性分析對(duì)項(xiàng)目的技術(shù),功能需求和市場(chǎng)進(jìn)行調(diào)研和初步分析,確定是否需要啟動(dòng)項(xiàng)目部門(mén)主管核心技術(shù)人員可行性分析報(bào)告技術(shù)調(diào)研報(bào)告啟動(dòng)項(xiàng)目正式啟動(dòng)項(xiàng)目,有部門(mén)主管制定項(xiàng)目經(jīng)理,項(xiàng)目經(jīng)理制定初步計(jì)劃,初步計(jì)劃包括設(shè)計(jì)和開(kāi)發(fā)時(shí)間的初步估計(jì)部門(mén)主管核心技術(shù)人員項(xiàng)目計(jì)劃書(shū)項(xiàng)目合同需求分析對(duì)項(xiàng)目詳細(xì)需求分析,編寫(xiě)需求文檔,對(duì)B/S結(jié)構(gòu)的系統(tǒng)應(yīng)制作靜態(tài)演示頁(yè)面。需求分析文檔和靜態(tài)演示頁(yè)面需要通過(guò)部門(mén)主管審批才能進(jìn)行到下一步驟項(xiàng)目經(jīng)理項(xiàng)目小組核心成員需求分析說(shuō)明書(shū)靜態(tài)演示頁(yè)面項(xiàng)目計(jì)劃修訂版本概要設(shè)計(jì)根據(jù)需求分析進(jìn)行概要設(shè)計(jì)。編寫(xiě)目的是說(shuō)明對(duì)系統(tǒng)的設(shè)計(jì)考慮,包括程序系統(tǒng)流程、組織結(jié)構(gòu)、模塊劃分、功能分配、接口設(shè)計(jì)。運(yùn)行設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)和出錯(cuò)處理設(shè)計(jì)等,為詳細(xì)設(shè)計(jì)提供基礎(chǔ)。概要設(shè)計(jì)經(jīng)過(guò)評(píng)審后,項(xiàng)目經(jīng)理通過(guò)部門(mén)主管一起指定項(xiàng)目小組成員。項(xiàng)目經(jīng)理項(xiàng)目小組核心成員概要設(shè)計(jì)說(shuō)明書(shū)詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)編制目的是說(shuō)明一個(gè)軟件各個(gè)層次中的每一個(gè)程序(每個(gè)模塊或子程序)的設(shè)計(jì)考慮,如果一個(gè)軟件系統(tǒng)比較簡(jiǎn)單,層次很少,可以不單獨(dú)編寫(xiě),有關(guān)內(nèi)容合并入概要設(shè)計(jì)說(shuō)明書(shū)。項(xiàng)目經(jīng)理項(xiàng)目小組成員詳細(xì)設(shè)計(jì)文檔項(xiàng)目計(jì)劃確定版本編碼實(shí)現(xiàn)根據(jù)設(shè)計(jì)開(kāi)發(fā)項(xiàng)目,同時(shí)有美工對(duì)操作界面進(jìn)行美化項(xiàng)目經(jīng)理、程序設(shè)計(jì)員、美工項(xiàng)目計(jì)劃修訂版本調(diào)試項(xiàng)目經(jīng)理提交測(cè)試申請(qǐng),由測(cè)試部門(mén)對(duì)項(xiàng)目進(jìn)行測(cè)試,項(xiàng)目小組配合測(cè)試部門(mén)修改軟件中的錯(cuò)誤項(xiàng)目經(jīng)理程序開(kāi)發(fā)人員測(cè)試部門(mén)測(cè)試申請(qǐng)測(cè)試計(jì)劃測(cè)試報(bào)告項(xiàng)目驗(yàn)收項(xiàng)目驗(yàn)收歸檔部門(mén)主管項(xiàng)目經(jīng)理項(xiàng)目所有文檔和程序步驟任務(wù)及說(shuō)明參與者生成文檔或程序可行性分析對(duì)項(xiàng)目的技術(shù),軟件工程過(guò)程定義了:方法使用的順序、要求交付的文檔資料、為保證質(zhì)量和適應(yīng)變化所需要的管理、軟件開(kāi)發(fā)各個(gè)階段完成的里程碑。軟件工程過(guò)程包含四種基本的過(guò)程活動(dòng):

plan:軟件規(guī)格說(shuō)明

do:軟件開(kāi)發(fā)

check:軟件確認(rèn)

action:軟件演進(jìn)軟件工程過(guò)程定義了:方法使用的順序、要求交付的文檔資料、為軟件生存周期模型是軟件工程思想的具體化,是跨越軟件生存周期的系統(tǒng)開(kāi)發(fā)、運(yùn)行、維護(hù)所實(shí)施的全部活動(dòng)和任務(wù)的過(guò)程框架。常用的軟件生存周期模型有瀑布模型,演化模型,螺旋模型,增量模型,噴泉模型,快速應(yīng)用開(kāi)發(fā)(RAD)模型。軟件生存周期模型是軟件工程思想的具體化,是跨越軟件生存周期的1.4軟件開(kāi)發(fā)模型1.4.1瀑布模型瀑布模型(waterfallmodel)將生存期的計(jì)劃時(shí)期、開(kāi)發(fā)時(shí)期和運(yùn)行時(shí)期,又細(xì)分為若干個(gè)階段:計(jì)劃時(shí)期可分為問(wèn)題定義、可行性研究、需求分析3個(gè)階段,開(kāi)發(fā)時(shí)期分為概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、軟件實(shí)現(xiàn)、軟件測(cè)試等階段,運(yùn)行時(shí)期則需要不斷進(jìn)行運(yùn)行維護(hù),需要不斷修改錯(cuò)誤、排除故障,或以用戶(hù)需求、運(yùn)行環(huán)境改變進(jìn)行改更調(diào)整。1.4軟件開(kāi)發(fā)模型1.4.1瀑布模型1.4軟件開(kāi)發(fā)模型圖1瀑布模型圖中的實(shí)線(xiàn)箭頭表示開(kāi)發(fā)流程,每個(gè)階段順序進(jìn)行,有時(shí)會(huì)返工;虛線(xiàn)箭頭表示維護(hù)工作的流程,根據(jù)不同情況返回到不同的階段進(jìn)行維護(hù)。1.4軟件開(kāi)發(fā)模型圖1瀑布模型圖中的實(shí)線(xiàn)箭頭表示開(kāi)發(fā)流程,1.4軟件開(kāi)發(fā)模型利用瀑布模型開(kāi)發(fā)軟件有3個(gè)特點(diǎn):

(1)開(kāi)發(fā)過(guò)程的順序性。瀑布模型開(kāi)發(fā)適用于軟件需求明確,開(kāi)發(fā)技術(shù)成熟,工程管理較嚴(yán)格的場(chǎng)合下使用。

(2)統(tǒng)籌兼顧不過(guò)早編程

(3)嚴(yán)格要求保證質(zhì)量。圖2循環(huán)模型1.4軟件開(kāi)發(fā)模型利用瀑布模型開(kāi)發(fā)軟件有3個(gè)特點(diǎn):圖2循1.4軟件開(kāi)發(fā)模型1.4.2快速原型模型快速原型模型需要先建造一個(gè)快速原型,如操作窗口及界面等,進(jìn)行客戶(hù)或潛在用戶(hù)與系統(tǒng)間的交流,用戶(hù)/客戶(hù)可以通過(guò)對(duì)原型的評(píng)價(jià)及改進(jìn)意見(jiàn),進(jìn)一步細(xì)化待開(kāi)發(fā)軟件的需求,通過(guò)逐步調(diào)整原型達(dá)到客戶(hù)要求,從中確定客戶(hù)的具體需求;然后按照需求開(kāi)發(fā)軟件。如圖所示。此模型最適合于可以先盡快構(gòu)建成一個(gè)原型的應(yīng)用系統(tǒng)。1.4軟件開(kāi)發(fā)模型1.4.2快速原型模型1.4軟件開(kāi)發(fā)模型1.4軟件開(kāi)發(fā)模型1.4軟件開(kāi)發(fā)模型1.4.3增量模型利用增量模型開(kāi)發(fā)的軟件被作為一系列的增量構(gòu)件來(lái)進(jìn)行設(shè)計(jì)、實(shí)現(xiàn)集成和測(cè)試,每個(gè)構(gòu)件具有一定功能,并最終能組合成一個(gè)具有完整功能軟件的模塊。如圖所示。1.4軟件開(kāi)發(fā)模型1.4.3增量模型1.4軟件開(kāi)發(fā)模型增量模型靈活性很強(qiáng),適用于軟件需求不明確、設(shè)計(jì)方案有一定風(fēng)險(xiǎn)的軟件項(xiàng)目。1.4軟件開(kāi)發(fā)模型1.4軟件開(kāi)發(fā)模型1.4.4螺旋模型螺旋模型將開(kāi)發(fā)過(guò)程劃分為制定計(jì)劃、風(fēng)險(xiǎn)分析、實(shí)施工程和客戶(hù)評(píng)估四類(lèi)活動(dòng)。沿著螺旋線(xiàn)每轉(zhuǎn)一圈,表示開(kāi)發(fā)出一個(gè)更完善的新軟件版本。如果開(kāi)發(fā)風(fēng)險(xiǎn)過(guò)大,開(kāi)發(fā)機(jī)構(gòu)和客戶(hù)無(wú)法接受,項(xiàng)目可能就此終止;多數(shù)情況下,將沿著螺旋線(xiàn)繼續(xù)進(jìn)行,自?xún)?nèi)向外逐步延伸,最終得到滿(mǎn)意的軟件產(chǎn)品。

1.4軟件開(kāi)發(fā)模型1.4.4螺旋模型1.4軟件開(kāi)發(fā)模型螺旋模型沿著螺線(xiàn)進(jìn)行多次迭代,其迭代過(guò)程如圖1-10所示。

(1)制定計(jì)劃:確定軟件目標(biāo),選定實(shí)施方案,弄清項(xiàng)目開(kāi)發(fā)的限制條件;

(2)風(fēng)險(xiǎn)分析:分析評(píng)估所選方案,考慮如何識(shí)別和消除風(fēng)險(xiǎn);

(3)實(shí)施工程:實(shí)施軟件開(kāi)發(fā)和驗(yàn)證;

(4)客戶(hù)評(píng)估:評(píng)價(jià)開(kāi)發(fā)工作,提出修正建議,制定下一步計(jì)劃。1.4軟件開(kāi)發(fā)模型螺旋模型沿著螺線(xiàn)進(jìn)行多次迭代,其迭代過(guò)程1.4軟件開(kāi)發(fā)模型1.4軟件開(kāi)發(fā)模型1.4軟件開(kāi)發(fā)模型1.4.5噴泉模型噴泉模型主要適合于利用面向?qū)ο蠹夹g(shù)的軟件開(kāi)發(fā)項(xiàng)目。它克服了瀑布模型不支持軟件重用和多項(xiàng)開(kāi)發(fā)活動(dòng)集成的局限性。可使開(kāi)發(fā)過(guò)程具有迭代性和無(wú)間隙性。1.4軟件開(kāi)發(fā)模型1.4.5噴泉模型1.4軟件開(kāi)發(fā)模型噴泉模型是以面向?qū)ο蟮拈_(kāi)發(fā)方法為基礎(chǔ),以用戶(hù)需求為源泉。從如圖1-5的噴泉模型中可以看出7個(gè)特點(diǎn):(1)規(guī)定軟件開(kāi)發(fā)過(guò)程有4個(gè)階段:需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)和實(shí)現(xiàn),還可分成多個(gè)開(kāi)發(fā)步驟。(2)各階段相互重疊,反映了軟件過(guò)程并行性的特點(diǎn)。1.4軟件開(kāi)發(fā)模型噴泉模型是以面向?qū)ο蟮拈_(kāi)發(fā)方1.4軟件開(kāi)發(fā)模型(3)以分析為基礎(chǔ),資源消耗成塔形,在分析階段消耗的資源最多。(4)反映了軟件過(guò)程迭代性的自然特性,從高層返回低層無(wú)資源消耗。(5)強(qiáng)調(diào)增量開(kāi)發(fā),依據(jù)分析一點(diǎn)設(shè)計(jì)一點(diǎn)的原則,并不要求一個(gè)階段的徹底完成,整個(gè)過(guò)程是一個(gè)迭代的逐步提煉的過(guò)程。(6)是對(duì)象驅(qū)動(dòng)過(guò)程,對(duì)象是活動(dòng)作用的實(shí)體,也是項(xiàng)目管理的基本內(nèi)容。(7)實(shí)現(xiàn)中由于活動(dòng)不同,可分為系統(tǒng)實(shí)現(xiàn)和對(duì)象實(shí)現(xiàn),這既反映了全系統(tǒng)的開(kāi)發(fā)過(guò)程,也反映了對(duì)象族的開(kāi)發(fā)和重用1.4軟件開(kāi)發(fā)模型(3)以分析為基礎(chǔ),資源消耗成塔1、噴泉模型的優(yōu)點(diǎn)

噴泉模型的各個(gè)階段沒(méi)有明顯的界限,開(kāi)發(fā)人員可以同步進(jìn)行開(kāi)發(fā)。其優(yōu)點(diǎn)是可以提高軟件項(xiàng)目開(kāi)發(fā)效率,節(jié)省開(kāi)發(fā)時(shí)間,適應(yīng)于面向?qū)ο蟮能浖_(kāi)發(fā)過(guò)程。2、噴泉模型的缺點(diǎn)

由于噴泉模型在各個(gè)開(kāi)發(fā)階段是重疊的,因此在開(kāi)發(fā)過(guò)程中需要大量的開(kāi)發(fā)人員,因此不利于項(xiàng)目的管理。此外這種模型要求嚴(yán)格管理文檔,使得審核的難度加大,尤其是面對(duì)可能隨時(shí)加入各種信息、需求與資料的情況。噴泉模型的優(yōu)缺點(diǎn)1、噴泉模型的優(yōu)點(diǎn)噴泉模型的優(yōu)缺點(diǎn)1.4軟件開(kāi)發(fā)模型1.4.6基于面向?qū)ο蟮哪P兔嫦驅(qū)ο蠹夹g(shù)強(qiáng)調(diào)了類(lèi)的創(chuàng)建與封裝,一個(gè)類(lèi)創(chuàng)建與封裝成功后,便可在不同的應(yīng)用系統(tǒng)中被重用。面向?qū)ο蠹夹g(shù)為基于構(gòu)件的軟件過(guò)程模型提供了強(qiáng)大的技術(shù)框架?;诿嫦?qū)ο蟮哪P?,綜合了面向?qū)ο蠛驮头椒爸赜眉夹g(shù)。該模型如圖所示。1.4軟件開(kāi)發(fā)模型1.4.6基于面向?qū)ο蟮哪P?.4軟件開(kāi)發(fā)模型1.4軟件開(kāi)發(fā)模型1.4軟件開(kāi)發(fā)模型*1.4.7其他模型

1.智能模型智能模型也稱(chēng)為基于知識(shí)的軟件開(kāi)發(fā)模型,是知識(shí)工程與軟件工程在開(kāi)發(fā)模型上的結(jié)合,它以瀑布模型與專(zhuān)家系統(tǒng)的綜合應(yīng)用為基礎(chǔ)。如圖所示,從中可見(jiàn)與其他模型不同,其維護(hù)并不在程序一級(jí)上進(jìn)行,可將問(wèn)題的復(fù)雜性極大降低。1.4軟件開(kāi)發(fā)模型1.4軟件開(kāi)發(fā)模型1.4軟件開(kāi)發(fā)模型1.4軟件開(kāi)發(fā)模型智能模型的主要優(yōu)點(diǎn)為:(1)利用領(lǐng)域?qū)<蚁到y(tǒng),可使需求說(shuō)明更完整、準(zhǔn)確和無(wú)二義性。(2)借助軟件工程專(zhuān)家系統(tǒng),提供一個(gè)設(shè)計(jì)庫(kù)支持,在開(kāi)發(fā)過(guò)程中成為設(shè)計(jì)者的助手。(3)通過(guò)軟件工程知識(shí)和特定應(yīng)用領(lǐng)域的知識(shí)及規(guī)則的應(yīng)用,對(duì)開(kāi)發(fā)提供幫助。1.4軟件開(kāi)發(fā)模型智能模型的主要優(yōu)點(diǎn)為:1.4軟件開(kāi)發(fā)模型2.統(tǒng)一過(guò)程模型統(tǒng)一開(kāi)發(fā)過(guò)程RUP(RationalUnifiedProcess)模型在迭代的開(kāi)發(fā)過(guò)程、需求管理、基于組件的體系結(jié)構(gòu)、可視化軟件建模、驗(yàn)證軟件質(zhì)量及控制軟件變更等方面,針對(duì)所有關(guān)鍵的開(kāi)發(fā)活動(dòng)為開(kāi)發(fā)成員提供了必要的準(zhǔn)則、模板和工具指導(dǎo),并確保共享相同的知識(shí)基礎(chǔ)。建立了簡(jiǎn)潔和清晰的過(guò)程結(jié)構(gòu),為開(kāi)發(fā)過(guò)程提供較多的通用性。(1)RUP的二維開(kāi)發(fā)模型及其核心工作流(CoreWorkflows)。主要包括:商業(yè)建模、需求、分析與設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、核心支持工作流、部署、配置和變更管理、項(xiàng)目管理和環(huán)境。如圖1-14所示。1.4軟件開(kāi)發(fā)模型2.統(tǒng)一過(guò)程模型1.4軟件開(kāi)發(fā)模型1.4軟件開(kāi)發(fā)模型1.4軟件開(kāi)發(fā)模型

(2)開(kāi)發(fā)中各階段和里程碑,主要包括。初始階段、細(xì)化階段、構(gòu)造階段、交付階段。(3)RUP的迭代開(kāi)發(fā)模式。如圖所示。1.4軟件開(kāi)發(fā)模型(2)開(kāi)發(fā)中各階段和里程碑,1.4軟件開(kāi)發(fā)模型1.4.8軟件開(kāi)發(fā)模型的選定

1.開(kāi)發(fā)模型與開(kāi)發(fā)方法及工具的關(guān)系一般應(yīng)用軟件的開(kāi)發(fā)過(guò)程,主要包括生存周期的系統(tǒng)規(guī)劃、需求分析、軟件設(shè)計(jì)、實(shí)現(xiàn)四個(gè)階段。軟件的開(kāi)發(fā)方法多種多樣,結(jié)構(gòu)化方法和面向?qū)ο蟮姆椒ㄊ浅S玫淖罨镜拈_(kāi)發(fā)方法。當(dāng)采用不同的開(kāi)發(fā)方法時(shí),軟件的生存周期過(guò)程將表現(xiàn)為不同的過(guò)程模型。為解決開(kāi)發(fā)工程中大量復(fù)雜的手工勞動(dòng),提高軟件的開(kāi)發(fā)效率,還要采用計(jì)算機(jī)輔助軟件工程CASE開(kāi)發(fā)工具來(lái)支持整個(gè)開(kāi)發(fā)過(guò)程。軟件的開(kāi)發(fā)模型(生存周期過(guò)程模型)與開(kāi)發(fā)方法、開(kāi)發(fā)工具之間的關(guān)系如圖所示。1.4軟件開(kāi)發(fā)模型1.4.8軟件開(kāi)發(fā)模型的選定1.3軟件生存周期1.3軟件生存周期1.3軟件生存周期2.軟件開(kāi)發(fā)模型選取最常用的是瀑布模型和原型模型,其次是增量模型,由于迭代模型比較難以掌握使用較少。各種模型各有其特點(diǎn)和優(yōu)缺點(diǎn)。在具體選擇模型時(shí)需要綜合考慮以下6點(diǎn):(1)符合軟件本身的性質(zhì),包括規(guī)模、復(fù)雜性等;(2)滿(mǎn)足軟件應(yīng)用系統(tǒng)整體開(kāi)發(fā)進(jìn)度要求;(3)盡可能控制并消除軟件開(kāi)發(fā)風(fēng)險(xiǎn);(4)具有計(jì)算機(jī)輔助工具快速的支持,如快速原型工具;(5)與用戶(hù)和軟件開(kāi)發(fā)人員的知識(shí)和技能匹配;(6)有利于軟件開(kāi)發(fā)的管理與控制。通常情況下,面向過(guò)程方法可使用瀑布模型、增量模型和螺旋模型進(jìn)行開(kāi)發(fā);面向?qū)ο蠓椒刹捎每焖僭?、增量模型、噴泉模型和統(tǒng)一過(guò)程進(jìn)行開(kāi)發(fā);面向數(shù)據(jù)方法一股采用瀑布模型和增量模型進(jìn)行開(kāi)發(fā)。1.3軟件生存周期2.軟件開(kāi)發(fā)模型選取1.3軟件生存周期3.軟件開(kāi)發(fā)模型的修定在實(shí)際軟件開(kāi)發(fā)過(guò)程中,開(kāi)發(fā)模型的選定并非直接照抄照搬、一成不變,有時(shí)還需要根據(jù)實(shí)際開(kāi)發(fā)目標(biāo)要求進(jìn)行裁剪、修改、確定和綜合運(yùn)用。1.3軟件生存周期3.軟件開(kāi)發(fā)模型的修定小結(jié)軟件是計(jì)算機(jī)程序及其有關(guān)的數(shù)據(jù)和文檔的結(jié)合。軟件危機(jī)是指在計(jì)算機(jī)軟件開(kāi)發(fā)和維護(hù)時(shí)所遇到的一系列問(wèn)題。軟件危機(jī)主要問(wèn)題:一是如何開(kāi)發(fā)軟件以滿(mǎn)足對(duì)軟件日益增長(zhǎng)的需求;二是如何維護(hù)數(shù)量不斷增長(zhǎng)的已有軟件。軟件工程采用工程的概念、原理、技術(shù)和方法來(lái)開(kāi)發(fā)與維護(hù)軟件。軟件工程的目標(biāo)是實(shí)現(xiàn)軟件的優(yōu)質(zhì)高產(chǎn)。其主要內(nèi)容是軟件開(kāi)發(fā)技術(shù)和軟件工程管理。軟件開(kāi)發(fā)方法學(xué)是編制軟件的系統(tǒng)方法,它確定軟件開(kāi)發(fā)的各個(gè)階段,規(guī)定每一階段的活動(dòng)、產(chǎn)品、驗(yàn)收的步驟和完成準(zhǔn)則。常用的軟件開(kāi)發(fā)方法有結(jié)構(gòu)化方法、面向數(shù)據(jù)結(jié)構(gòu)方法和面向?qū)ο蠓椒ǖ?。小結(jié)軟件是計(jì)算機(jī)程序及其有關(guān)的數(shù)據(jù)和文檔的結(jié)合。軟件危機(jī)是指軟件就是程序嗎?什么是軟件危機(jī)?表現(xiàn)是什么?軟件工程定義有很多說(shuō)法,說(shuō)出你的理解?軟件工程三要素是什么?軟件工程的目標(biāo)、過(guò)程和原則是什么?軟件工程原理有哪幾條?軟件的什么周期是什么?過(guò)程模型有哪些?哪一個(gè)適合你的項(xiàng)目開(kāi)發(fā)?軟件就是程序嗎?《軟件工程》

SoftwareEngineering葛文eng429@126.com信息工程學(xué)院《軟件工程》SoftwareEngineering葛引言Microsoft的比爾蓋茨在一次展覽會(huì)的演講中談到:假如GM(美國(guó)通用汽車(chē)公司,別克、雪佛蘭、凱迪拉克)的技術(shù)能像計(jì)算機(jī)技術(shù)那樣發(fā)展,我們現(xiàn)在應(yīng)該能用25美元買(mǎi)到一輛1加侖汽油跑1000英里的汽車(chē)。---《揚(yáng)子晚報(bào)》引言Microsoft的比爾蓋茨在一次展覽會(huì)的演講中談到:假針對(duì)比爾蓋茨的講話(huà),GM反唇相譏:如果GM發(fā)展的技術(shù)像Microsoft的軟件那樣,我們現(xiàn)在開(kāi)的汽車(chē)會(huì)有以下特點(diǎn):你的汽車(chē)可能毫無(wú)道理的每天拋錨兩次每次公路上重新畫(huà)線(xiàn)時(shí),你都得買(mǎi)輛新車(chē)有時(shí)候你的車(chē)在高速公路上莫名其妙的熄火,你必須accept,然后restart有時(shí)候你的車(chē)在左拐彎時(shí)突然shutdown了,無(wú)法restart,你必須重新安裝(reinstall)發(fā)動(dòng)機(jī)當(dāng)你買(mǎi)了“轎車(chē)95”或“轎車(chē)NT”后,每次車(chē)上只能坐一個(gè)人,你要給其他的人再買(mǎi)椅子Macintosh牌汽車(chē)更可靠、更便宜、更快、也更容易開(kāi),但是只能在5%的道路上行駛油量、水溫和其它警告燈將由一個(gè)“GENERALCARFAILURE”的警告燈所代替新座椅要求大家屁股的尺寸相同氣囊系統(tǒng)彈出前詢(xún)問(wèn)“Areyousure?”,要求你加以確認(rèn)有時(shí)候你的汽車(chē)會(huì)鎖死車(chē)門(mén)使你無(wú)法進(jìn)入汽車(chē),你得不停的提門(mén)把手、拿鑰匙捅、晃天線(xiàn),直到打開(kāi)車(chē)門(mén)針對(duì)比爾蓋茨的講話(huà),GM反唇相譏:如果GM發(fā)我們且不考慮GM的言辭是否過(guò)于偏激,但Microsoft公司作為全球最大的計(jì)算機(jī)軟件生產(chǎn)商,擁有一大批優(yōu)秀的項(xiàng)目經(jīng)理、軟件工程師、程序員,具有豐富的軟件開(kāi)發(fā)和項(xiàng)目管理經(jīng)驗(yàn),開(kāi)發(fā)出來(lái)的軟件仍然不能很好的保證質(zhì)量,這是不爭(zhēng)的事實(shí)。我們幾乎每個(gè)人在使用Windows操作系統(tǒng)時(shí),都碰到過(guò)死機(jī)現(xiàn)象這是為什么呢?我們且不考慮GM的言辭是否過(guò)于偏激,但Microsoft公司與硬件相比,軟件的本質(zhì)特征是什么?為什么硬件的可靠性可以達(dá)到很高的程度,而軟件卻不能做到bug-free?什么樣的軟件可以稱(chēng)作是一個(gè)好軟件,或者說(shuō)好軟件具有什么樣的特點(diǎn)?目前存在哪些方法和技術(shù)能夠有效地提高軟件的質(zhì)量,做出好軟件?與硬件相比,軟件的本質(zhì)特征是什么?軟件工程簡(jiǎn)介軟件工程是計(jì)算機(jī)專(zhuān)業(yè)的一門(mén)重要的專(zhuān)業(yè)基礎(chǔ)課,它對(duì)于培養(yǎng)學(xué)生的軟件素質(zhì),提高學(xué)生的軟件開(kāi)發(fā)能力與軟件項(xiàng)目管理能力具有重要的意義。1995年,StandishGroup針對(duì)系統(tǒng)開(kāi)發(fā)成功的研究表明,所有的開(kāi)發(fā)項(xiàng)目中有32%的項(xiàng)目在它們結(jié)束之前被中止。此外多于一半的軟件項(xiàng)目花費(fèi)的成本相當(dāng)于原來(lái)預(yù)算的2倍。軟件工程簡(jiǎn)介軟件工程是計(jì)算機(jī)專(zhuān)業(yè)的一門(mén)重要的專(zhuān)業(yè)基礎(chǔ)課,它對(duì)軟件工程是軟件工程專(zhuān)業(yè)的一門(mén)核心課程。通過(guò)本課程的學(xué)習(xí),使學(xué)生掌握系統(tǒng)的軟件開(kāi)發(fā)理論、技術(shù)和方法,使用正確的工程方法開(kāi)發(fā)出成本低、可靠性好并在機(jī)器上能高效運(yùn)行的軟件,為今后從事軟件開(kāi)發(fā)和維護(hù)打下堅(jiān)實(shí)的基礎(chǔ)。課程的性質(zhì)、目的軟件工程是軟件工程專(zhuān)業(yè)的一門(mén)核心課程。課程的性質(zhì)、目的學(xué)生任務(wù)

通過(guò)本課程的學(xué)習(xí),使學(xué)生能真正了解軟件開(kāi)發(fā)的整個(gè)過(guò)程。學(xué)生要結(jié)合實(shí)際軟件項(xiàng)目,從問(wèn)題定義開(kāi)始,經(jīng)過(guò)可行性研究、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼直到最后要對(duì)自己開(kāi)發(fā)的軟件進(jìn)行測(cè)試,經(jīng)歷一個(gè)軟件開(kāi)發(fā)的全過(guò)程,掌握軟件開(kāi)發(fā)的基本技能和方法。學(xué)生任務(wù)通過(guò)本課程的學(xué)習(xí),使學(xué)生能真正了解軟件開(kāi)發(fā)的整個(gè)過(guò)主要內(nèi)容軟件工程的基本概念軟件開(kāi)發(fā)過(guò)程、活動(dòng)、方法學(xué)軟件開(kāi)發(fā)各階段的任務(wù)、技術(shù)、方法軟件開(kāi)發(fā)的兩種方法:傳統(tǒng)與面向?qū)ο蠓椒ㄜ浖臏y(cè)試與維護(hù)軟件開(kāi)發(fā)的項(xiàng)目管理軟件質(zhì)量保證主要內(nèi)容軟件工程的基本概念教材本書(shū)全面系統(tǒng)地講述了軟件工程的概念、原理和典型的方法學(xué),并通過(guò)分析一個(gè)實(shí)際案例“開(kāi)放實(shí)驗(yàn)室管理系統(tǒng)”,幫助理解軟件需求分析與建模以及設(shè)計(jì)與實(shí)現(xiàn)的方法和過(guò)程,特別適合用做應(yīng)用型人才培養(yǎng)的教材。網(wǎng)絡(luò)資源:/netclass教材本書(shū)全面系統(tǒng)地講述了軟件工程的概念、原理和典型的方法學(xué),參考書(shū)SoftwareEngineering,IanSommerville,PearsonEducationAsia《軟件工程基礎(chǔ)與實(shí)用教材》沈文軒等《軟件工程導(dǎo)論》張海藩,清華大學(xué)出版社《軟件工程—原理、方法與應(yīng)用》史濟(jì)民,高等教育出版社《軟件工程技術(shù)概論》朱三元,科學(xué)出版社《實(shí)用軟件工程》鄭人杰,清華出版社《現(xiàn)代軟件工程》(上中冊(cè))周之英,科學(xué)出版社《軟件工程理論與實(shí)踐》譯文,高教出版社《現(xiàn)代軟件工程》陳松橋,北方交大出版社參考書(shū)SoftwareEngineering,IanS章節(jié)安排章次各章標(biāo)題名稱(chēng)講授學(xué)時(shí)第一章軟件工程學(xué)概述3第二章可行性研究1第三章需求分析4第四章面向?qū)ο蠓治?第五章總體設(shè)計(jì)4第六章詳細(xì)設(shè)計(jì)4第七章面向?qū)ο笤O(shè)計(jì)4第八章實(shí)現(xiàn)4第九章維護(hù)2第十章軟件項(xiàng)目管理2章節(jié)安排章次各章標(biāo)題名稱(chēng)講授學(xué)時(shí)第一章軟件工程學(xué)概述3第二章學(xué)習(xí)要求要求學(xué)生有刻苦學(xué)習(xí),持之以恒的精神。本課程的性質(zhì)與其說(shuō)是一門(mén)技術(shù)性很強(qiáng)的課程,不如說(shuō)更像一門(mén)管理學(xué)科的課程,很多規(guī)定都是國(guó)內(nèi)外大師的經(jīng)驗(yàn)總結(jié),不能誤認(rèn)為無(wú)用或現(xiàn)在用不上而放棄學(xué)習(xí)。要求學(xué)生能夠?qū)W以致用,善于將理論與實(shí)際結(jié)合,才能鞏固課內(nèi)學(xué)到的知識(shí),并能融會(huì)貫通。學(xué)習(xí)要求要求學(xué)生有刻苦學(xué)習(xí),持之以恒的精神。本課程的性質(zhì)與其學(xué)習(xí)建議在正文中介紹了不少軟件工程的基本原則和基本方法,在學(xué)習(xí)時(shí),可以根據(jù)你的實(shí)踐,認(rèn)真思考一下為什么。不但知其然,而且知其所以然,這樣會(huì)記得牢一些,不會(huì)看過(guò)就忘。學(xué)習(xí)建議在正文中介紹了不少軟件工程的基本原則和基本方法,在學(xué)考核考試課程總成績(jī)=平時(shí)成績(jī)(10%)+實(shí)驗(yàn)成績(jī)(30%)+考試成績(jī)(60%)考核考試課程第一講軟件工程學(xué)概述本章學(xué)習(xí)目標(biāo)1.了解軟件的概念2.了解軟件開(kāi)發(fā)的發(fā)展歷程3.掌握軟件工程的概念、原理和基本內(nèi)容4.掌握軟件生命周期5.理解軟件過(guò)程模型第一講軟件工程學(xué)概述本章學(xué)習(xí)目標(biāo)1.了解軟件的概念2.了解1軟件軟件由計(jì)算機(jī)程序、數(shù)據(jù)及文檔組成。程序是能夠完成預(yù)定功能和性能的一組計(jì)算機(jī)指令數(shù)據(jù)是程序在執(zhí)行過(guò)程需要輸入、處理和輸出的內(nèi)容和結(jié)構(gòu)文檔是描述程序的設(shè)計(jì)和使用的部分1軟件軟件由計(jì)算機(jī)程序、數(shù)據(jù)及文檔組成。軟件的特點(diǎn)抽象性軟件生產(chǎn)無(wú)明顯制造過(guò)程無(wú)磨損性對(duì)計(jì)算機(jī)硬件依賴(lài)性軟件的手工開(kāi)發(fā)方式軟件本身復(fù)雜性軟件的高成本(德國(guó)的一款專(zhuān)業(yè)設(shè)計(jì)3D的軟件:3DMAX(正版)

官方售價(jià):2000000元RMB)軟件的特點(diǎn)抽象性軟件的分類(lèi)軟件與硬件、數(shù)據(jù)庫(kù)、人、過(guò)程等共同構(gòu)成計(jì)算機(jī)系統(tǒng)。軟件種類(lèi)可以從功能、規(guī)模、工作方式、服務(wù)對(duì)象、實(shí)驗(yàn)頻度、失效影響六個(gè)方面進(jìn)行劃分:

按功能分類(lèi)應(yīng)用軟件:管理軟件、實(shí)時(shí)軟件、科學(xué)計(jì)算、數(shù)據(jù)處理、嵌入式軟件等系統(tǒng)軟件:操作系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、編譯器、工具軟件等軟件的分類(lèi)軟件與硬件、數(shù)據(jù)庫(kù)、人、過(guò)程等共同構(gòu)成計(jì)算機(jī)系統(tǒng)。中國(guó)的軟件產(chǎn)業(yè)主權(quán)大國(guó)必須建立基于自主技術(shù)的、完整的軟件產(chǎn)業(yè)體系。軟件本國(guó)提供率:中國(guó)1/3左右,美國(guó)97%。中國(guó)盜版軟件比例大軟件人才結(jié)構(gòu)不合理,缺乏中高級(jí)軟件人才,軟件人員缺乏軟件工程化的概念。中國(guó)的軟件產(chǎn)業(yè)主權(quán)大國(guó)必須建立基于自主技術(shù)的、完整的軟件產(chǎn)業(yè)軟件發(fā)展階段時(shí)間軟件20世紀(jì)60年代中期前軟件=程序60年代中期至70年代中期前軟件=程序+使用說(shuō)明出現(xiàn)軟件危機(jī)70年代中期后軟件=程序+數(shù)據(jù)+文檔軟件工程時(shí)代軟件發(fā)展階段時(shí)間軟件20世紀(jì)60年代中期前軟件=程序60年代2軟件危機(jī)軟件危機(jī)指的是在計(jì)算機(jī)軟件的開(kāi)發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題。軟件危機(jī)的主要特征

軟件價(jià)格在整個(gè)項(xiàng)目投入中的比例不斷升高;

軟件開(kāi)發(fā)成本嚴(yán)重超標(biāo);

軟件開(kāi)發(fā)周期大大超過(guò)規(guī)定日期;

軟件質(zhì)量難于保證;

軟件修改、維護(hù)困難;

失敗的根本原因在于:開(kāi)發(fā)人員寫(xiě)出的東西達(dá)不到用戶(hù)要求(人的問(wèn)題、技術(shù)問(wèn)題)2軟件危機(jī)軟件危機(jī)指的是在計(jì)算機(jī)軟件的開(kāi)發(fā)和維護(hù)過(guò)程中所遇到產(chǎn)生軟件危機(jī)的原因計(jì)算機(jī)應(yīng)用發(fā)展軟件數(shù)量多規(guī)模大,功能復(fù)雜個(gè)體化軟件開(kāi)發(fā)方法無(wú)開(kāi)發(fā)過(guò)程指導(dǎo)無(wú)開(kāi)發(fā)過(guò)程管理軟件成本高、質(zhì)量低、維護(hù)困難軟件危機(jī)客觀因素主觀因素主客觀不相適應(yīng)產(chǎn)生軟件危機(jī)的原因計(jì)算機(jī)應(yīng)用發(fā)展軟件數(shù)量多個(gè)體化軟件無(wú)開(kāi)發(fā)過(guò)軟件工程改正一個(gè)問(wèn)題需付出的代價(jià)需求分析結(jié)構(gòu)設(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(美元)(人天)軟件工程改正一個(gè)問(wèn)題需付出的代價(jià)需結(jié)構(gòu)設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼解決辦法管理措施項(xiàng)目管理配置管理過(guò)程管理質(zhì)量控制

技術(shù)措施開(kāi)發(fā)過(guò)程開(kāi)發(fā)技術(shù)與方法開(kāi)發(fā)工具

軟件工程學(xué)(軟件產(chǎn)品開(kāi)發(fā)工程)用工程化的理論、方法和技術(shù)來(lái)管理軟件開(kāi)發(fā)過(guò)程,從管理和技術(shù)兩方面措施對(duì)軟件開(kāi)發(fā)進(jìn)行規(guī)范化和理論研究即產(chǎn)生了軟件工程學(xué)科解決辦法管理措施技術(shù)措施軟件工程學(xué)用工程化的理3軟件工程1968年德國(guó)人Bauer在北大西洋公約組織會(huì)議上的定義:"建立并使用完善的工程化原則,以較經(jīng)濟(jì)的手段獲得能在實(shí)際機(jī)器上有效運(yùn)行的可靠軟件的一系列方法"。1983年IEEE的軟件工程定義:"軟件工程是開(kāi)發(fā),運(yùn)行,維護(hù)和修復(fù)軟件的系統(tǒng)方法"。1993年IEEE的一個(gè)更加綜合的定義:"將系統(tǒng)化的,規(guī)范的,可度量的方法應(yīng)用于軟件的開(kāi)發(fā),運(yùn)行和維護(hù)的過(guò)程,即將工程化應(yīng)用于軟件中"。3軟件工程1968年德國(guó)人Bauer在北大西洋公約組織軟件工程的基本原理1983年,著名軟件工程專(zhuān)家B.W.Boehm提出了七條獲得公認(rèn)的軟件工程的基本原理:(1)分階段的生命周期計(jì)劃嚴(yán)格管理性。(2)堅(jiān)持進(jìn)行階段評(píng)審。(3)實(shí)行嚴(yán)格的產(chǎn)品控制。(4)采用現(xiàn)代程序設(shè)計(jì)技術(shù)。(5)結(jié)果應(yīng)能清楚地審查。

(6)開(kāi)發(fā)小組的人員應(yīng)少而精。(7)承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性。軟件工程的基本原理1983年,著名軟件工程專(zhuān)家B.W.Boe軟件工程框架給出了軟件工程三個(gè)主要方面。軟件工程目標(biāo)—包括可用性、正確性和合算性,規(guī)定了軟件工程實(shí)踐的結(jié)果(即軟件)應(yīng)具有的基本性質(zhì);軟件工程過(guò)程—包含的基本活動(dòng)有需求、分析與設(shè)計(jì)、實(shí)現(xiàn)、確認(rèn)與測(cè)試、維護(hù)與支持;軟件工程的四條原則--采用適宜的開(kāi)發(fā)模型,使用恰當(dāng)?shù)拈_(kāi)發(fā)方法,提供高質(zhì)量的工程支持,實(shí)施有效的工程管理,從四個(gè)方面指導(dǎo)每一項(xiàng)工程的活動(dòng),以實(shí)現(xiàn)軟件工程目標(biāo)。軟件工程框架軟件工程框架給出了軟件工程三個(gè)主要方面。軟件工程框架軟件工程的目標(biāo):追求高質(zhì)量高效率

實(shí)現(xiàn)目標(biāo)的過(guò)程:完成產(chǎn)品加工的過(guò)程。

進(jìn)行過(guò)程應(yīng)遵守的原則:行進(jìn)中的軌道約束。

可用性性性確正合算選取適宜的開(kāi)發(fā)模型采用合適的設(shè)計(jì)方法提供高質(zhì)量的工程支持重視軟件工程的管理基本過(guò)程支持過(guò)程組織過(guò)程目標(biāo)過(guò)程原則軟件工程的目標(biāo):追求高質(zhì)量高效率

實(shí)現(xiàn)目標(biāo)的過(guò)程:完成產(chǎn)品軟件工程的三要素R.Pressman在他的《軟件工程》教程中指出:軟件工程的三個(gè)要素是方法、工具、過(guò)程。方法是完成軟件開(kāi)發(fā)的各項(xiàng)任務(wù)的技術(shù)方法,回答“如何做”的問(wèn)題;工具是為方法的運(yùn)用提供自動(dòng)的或半自動(dòng)的軟件支撐環(huán)境;過(guò)程是為了獲得高質(zhì)量的軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。軟件工程的三要素R.Pressman在他的《軟件工程》教程軟件工程的目標(biāo)與原則軟件工程的主要目標(biāo):提高軟件的質(zhì)量和軟件生產(chǎn)率。

軟件工程需要達(dá)到的基本目標(biāo):

付出較低的開(kāi)發(fā)成本達(dá)到要求的軟件功能取得較好的軟件性能開(kāi)發(fā)的軟件易于移植需要較低的維護(hù)費(fèi)用能按時(shí)完成開(kāi)發(fā),及時(shí)交付使用軟件工程的目標(biāo)與原則軟件工程的主要目標(biāo):提高軟件的質(zhì)量和軟件在軟件開(kāi)發(fā)過(guò)程中必須遵循的軟件工程原則:抽象與自頂向下、逐層細(xì)化采用分層抽象的方法,有效控制軟件開(kāi)發(fā)的復(fù)雜性。模塊化把問(wèn)題分解為若干較小的較易解決的模塊,有助于信息隱蔽和抽象。信息隱蔽和數(shù)據(jù)封裝將模塊中的軟件設(shè)計(jì)決策封裝在模塊內(nèi)部,使得模塊實(shí)現(xiàn)與使用分離,有助于控制修改局部化。

在軟件開(kāi)發(fā)過(guò)程中必須遵循的軟件工程原則:局部化在一個(gè)物理模塊內(nèi)集中邏輯上相互關(guān)聯(lián)的計(jì)算機(jī)資源,促使聚合具有特定目的的事物。一致性整個(gè)軟件系統(tǒng)的模塊使用一致的設(shè)計(jì)策略、編程風(fēng)格,保持程序內(nèi)部接口的一致性、軟件與硬件接口的一致性、系統(tǒng)規(guī)格說(shuō)明與系統(tǒng)行為的一致性。完備性軟件系統(tǒng)中不丟失任何成分。可驗(yàn)證性系統(tǒng)分解應(yīng)當(dāng)遵循易檢查、易測(cè)試和易評(píng)審的原則,以便保證系統(tǒng)的正確性。局部化在一個(gè)物理模塊內(nèi)集中邏輯上相互關(guān)聯(lián)的計(jì)算機(jī)資源軟件工程學(xué)“軟件工程學(xué)”是一門(mén)交叉學(xué)科涉及計(jì)算機(jī)科學(xué)、管理科學(xué)、工程學(xué)和數(shù)學(xué)。軟件工程則是培養(yǎng)軟件工程師。軟件工程學(xué)軟件開(kāi)發(fā)技術(shù)軟件開(kāi)發(fā)方法學(xué)軟件工具軟件工程環(huán)境軟件工程管理軟件管理學(xué)軟件經(jīng)濟(jì)學(xué)軟件工程學(xué)“軟件工程學(xué)”是一門(mén)交叉學(xué)科涉及計(jì)算機(jī)科學(xué)、管理科71.3軟件工程方法學(xué)軟件工程方法學(xué)是軟件開(kāi)發(fā)的系統(tǒng)化方法,是一套完整的軟件開(kāi)發(fā)技術(shù),包括原則、方法、過(guò)程和工具,是每一階段活動(dòng)、產(chǎn)品、驗(yàn)收的步驟和完成準(zhǔn)則。軟件工程方法學(xué)應(yīng)用最廣泛的是結(jié)構(gòu)化方法和面向?qū)ο蠓椒ā?1.3軟件工程方法學(xué)軟件工程方法學(xué)是軟件開(kāi)發(fā)的系統(tǒng)化方法7結(jié)構(gòu)化方法(SM,StructuredMethod)是傳統(tǒng)的軟件開(kāi)發(fā)方法,基本思想是:用系統(tǒng)工程的思想和工程化的方法,按照用戶(hù)至上的原則,結(jié)構(gòu)化、模塊化、自頂向下地對(duì)系統(tǒng)進(jìn)行分析和設(shè)計(jì),把一個(gè)復(fù)雜問(wèn)題的求解過(guò)程分階段進(jìn)行,使得每個(gè)階段處理的問(wèn)題都控制在容易理解的范圍內(nèi)。結(jié)構(gòu)化方法7結(jié)構(gòu)化方法(SM,StructuredMethod)是傳71.結(jié)構(gòu)化方法模型71.結(jié)構(gòu)化方法模型72.結(jié)構(gòu)化方法過(guò)程(1)結(jié)構(gòu)化分析(SA,StructuredAnalysis)。(2)結(jié)構(gòu)化設(shè)計(jì)(SD,StructuredDesign)。(3)結(jié)構(gòu)化實(shí)現(xiàn)(SP,StructuredProgramming)。3.結(jié)構(gòu)化方法特點(diǎn)(1)嚴(yán)格的分階段計(jì)劃。(2)瀑布式開(kāi)發(fā)模式。(3)嚴(yán)格的技術(shù)審查和管理復(fù)審。(4)各階段采用結(jié)構(gòu)化技術(shù)。72.結(jié)構(gòu)化方法過(guò)程3.結(jié)構(gòu)化方法特點(diǎn)7面向?qū)ο蠓椒ǎ∣bject-OrientedMethod)是一種把面向?qū)ο笏枷霊?yīng)用于軟件開(kāi)發(fā)過(guò)程,來(lái)指導(dǎo)開(kāi)發(fā)活動(dòng)的系統(tǒng)方法,簡(jiǎn)稱(chēng)OO(Object-Oriented)方法,是建立在“對(duì)象”概念基礎(chǔ)上的方法學(xué)。所謂面向?qū)ο缶褪腔趯?duì)象概念,以對(duì)象為中心,以類(lèi)和繼承為構(gòu)造機(jī)制,認(rèn)識(shí)、理解、刻畫(huà)客觀世界,設(shè)計(jì)、構(gòu)建相應(yīng)的軟件系統(tǒng)。面向?qū)ο蠓椒?面向?qū)ο蠓椒ǎ∣bject-OrientedMethod72面向?qū)ο蠓椒嫦驅(qū)ο蠓椒P?2面向?qū)ο蠓椒嫦驅(qū)ο蠓椒P?2.面向?qū)ο蠓椒ㄟ^(guò)程(1)面向?qū)ο蠓治觯∣OA,Object-OrientedAnalysis)。(2)面向?qū)ο笤O(shè)計(jì)(OOD,Object-OrientedDesign)。(3)面向?qū)ο蟮木幊蹋∣OP,Object-OrientedPrograming)。(4)面向?qū)ο鬁y(cè)試(OOT,Object-OrientedTest)。3.面向?qū)ο蠓椒ㄌ攸c(diǎn)(1)以對(duì)象作為基本的軟件構(gòu)件。(2)軟件定義和實(shí)現(xiàn)的統(tǒng)一。(3)重視軟件復(fù)用。(4)通過(guò)逐步演化來(lái)完成軟件開(kāi)發(fā)。72.面向?qū)ο蠓椒ㄟ^(guò)程3.面向?qū)ο蠓椒ㄌ攸c(diǎn)7敏捷方法是一種針對(duì)用戶(hù)需求迅速變化的現(xiàn)實(shí)情況,采用短周期交付形式和協(xié)作開(kāi)發(fā)的輕量級(jí)軟件開(kāi)發(fā)方式。相對(duì)于“非敏捷”,更強(qiáng)調(diào)程序員團(tuán)隊(duì)與業(yè)務(wù)專(zhuān)家之間的緊密協(xié)作、面對(duì)面的溝通、頻繁交付新的軟件版本、緊湊而自我組織型的團(tuán)隊(duì)、適應(yīng)需求變化的代碼編寫(xiě),也更注重軟件開(kāi)發(fā)中人的作用。敏捷方法7敏捷方法是一種針對(duì)用戶(hù)需求迅速變化的現(xiàn)實(shí)情況,采用短周期交71.敏捷方法特點(diǎn)(1)追求軟件交付使用這一終極目標(biāo)。(2)強(qiáng)調(diào)全面合作和交流。(3)重視軟件開(kāi)發(fā)中人的個(gè)性。(4)強(qiáng)調(diào)團(tuán)隊(duì)的力量。(5)靈活采用各種開(kāi)發(fā)和管理方式。71.敏捷方法特點(diǎn)72.敏捷方法原則(1)最優(yōu)先的目標(biāo)是通過(guò)盡早交付有價(jià)值的軟件來(lái)滿(mǎn)足用戶(hù)需求。(2)即使在開(kāi)發(fā)后期,也能適應(yīng)需求變化,能夠駕馭變化,幫助用戶(hù)取得競(jìng)爭(zhēng)優(yōu)勢(shì)。(3)頻繁交付可使用的軟件,時(shí)間間隔從幾周到幾個(gè)月,間隔越短越好。(4)整個(gè)開(kāi)發(fā)過(guò)程中,業(yè)務(wù)人員和開(kāi)發(fā)者應(yīng)該在一起工作。(5)以積極主動(dòng)的員工為主體進(jìn)行軟件開(kāi)發(fā),并且提供適宜環(huán)境、滿(mǎn)足員工需要、信任員工工作。(6)開(kāi)發(fā)團(tuán)隊(duì)內(nèi)外最有效率和效果的信息傳達(dá)方式是面對(duì)面交流。72.敏捷方法原則72.敏捷方法原則(7)可用的軟件是進(jìn)度的主要度量標(biāo)準(zhǔn)。(8)提倡可持續(xù)開(kāi)發(fā),管理者、開(kāi)發(fā)人員和用戶(hù)應(yīng)始終保持穩(wěn)定的節(jié)奏。(9)簡(jiǎn)單,盡可能減少工作量至關(guān)重要。(10)強(qiáng)調(diào)先進(jìn)技術(shù)和良好設(shè)計(jì),以不斷提高敏捷性。(11)最好的架構(gòu)、需求和設(shè)計(jì)來(lái)源于自我組織的團(tuán)隊(duì)。(12)團(tuán)隊(duì)定期總結(jié)提高效率的方法,并相應(yīng)調(diào)整團(tuán)隊(duì)行為。72.敏捷方法原則ISO9000定義:軟件工程過(guò)程是把輸入轉(zhuǎn)化為輸出的一組彼此相關(guān)的資源和活動(dòng)。從軟件開(kāi)發(fā)的觀點(diǎn)看,它就是使用適當(dāng)?shù)馁Y源(包括人員、硬軟件工具、時(shí)間等),為開(kāi)發(fā)軟件進(jìn)行的一組開(kāi)發(fā)活動(dòng),在過(guò)程結(jié)束時(shí)將輸入(用戶(hù)要求)轉(zhuǎn)化為輸出(軟件產(chǎn)品)。4軟件工程過(guò)程與軟件生存周期ISO9000定義:軟件工程過(guò)程是把輸入轉(zhuǎn)化為輸出的一組彼軟件生存周期各階段的主要任務(wù)

問(wèn)題的定義及規(guī)劃需求分析軟件設(shè)計(jì)程序編碼軟件測(cè)試運(yùn)行維護(hù)軟件生存周期各階段的主要任務(wù)

問(wèn)題的定義及規(guī)劃開(kāi)發(fā)策劃。主要完成問(wèn)題定義、可行性論證、制定開(kāi)發(fā)計(jì)劃和項(xiàng)目申報(bào)工作,明確“要解決的問(wèn)題是什么”。需求分析。需求分析和定義階段任務(wù)不是具體地解決問(wèn)題,而是確定軟件須具備的具體功能、性能等,即“必須做什么”及其他指標(biāo)要求。概要設(shè)計(jì)。主要設(shè)計(jì)軟件的結(jié)構(gòu),結(jié)構(gòu)的組成模塊,模塊的層次結(jié)構(gòu)、調(diào)用關(guān)系及功能。并設(shè)計(jì)總體數(shù)據(jù)結(jié)構(gòu)等。

開(kāi)發(fā)策劃。主要完成問(wèn)題定義、可行性論證、制定開(kāi)發(fā)計(jì)劃和項(xiàng)目申(4)詳細(xì)設(shè)計(jì)。對(duì)模塊功能、性能、可靠性等進(jìn)行具體技術(shù)描述,并轉(zhuǎn)化為過(guò)程描述。(5)編寫(xiě)程序。又稱(chēng)編碼,將模塊的控制結(jié)構(gòu)轉(zhuǎn)換成程序代碼。(6)測(cè)試。為了保證軟件需求和質(zhì)量,在設(shè)計(jì)測(cè)試用例基礎(chǔ)上對(duì)軟件進(jìn)行檢測(cè)(7)運(yùn)行維護(hù)。對(duì)交付并投入使用的軟件進(jìn)行各種維護(hù),并記錄保存文檔。(4)詳細(xì)設(shè)計(jì)。對(duì)模塊功能、性能、可靠性等進(jìn)行具體技術(shù)描步驟任務(wù)及說(shuō)明參與者生成文檔或程序可行性分析對(duì)項(xiàng)目的技術(shù),功能需求和市場(chǎng)進(jìn)行調(diào)研和初步分析,確定是否需要啟動(dòng)項(xiàng)目部門(mén)主管核心技術(shù)人員可行性分析報(bào)告技術(shù)調(diào)研報(bào)告啟動(dòng)項(xiàng)目正式啟動(dòng)項(xiàng)目,有部門(mén)主管制定項(xiàng)目經(jīng)理,項(xiàng)目經(jīng)理制定初步計(jì)劃,初步計(jì)劃包括設(shè)計(jì)和開(kāi)發(fā)時(shí)間的初步估計(jì)部門(mén)主管核心技術(shù)人員項(xiàng)目計(jì)劃書(shū)項(xiàng)目合同需求分析對(duì)項(xiàng)目詳細(xì)需求分析,編寫(xiě)需求文檔,對(duì)B/S結(jié)構(gòu)的系統(tǒng)應(yīng)制作靜態(tài)演示頁(yè)面。需求分析文檔和靜態(tài)演示頁(yè)面需要通過(guò)部門(mén)主管審批才能進(jìn)行到下一步驟項(xiàng)目經(jīng)理項(xiàng)目小組核心成員需求分析說(shuō)明書(shū)靜態(tài)演示頁(yè)面項(xiàng)目計(jì)劃修訂版本概要設(shè)計(jì)根據(jù)需求分析進(jìn)行概要設(shè)計(jì)。編寫(xiě)目的是說(shuō)明對(duì)系統(tǒng)的設(shè)計(jì)考慮,包括程序系統(tǒng)流程、組織結(jié)構(gòu)、模塊劃分、功能分配、接口設(shè)計(jì)。運(yùn)行設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)和出錯(cuò)處理設(shè)計(jì)等,為詳細(xì)設(shè)計(jì)提供基礎(chǔ)。概要設(shè)計(jì)經(jīng)過(guò)評(píng)審后,項(xiàng)目經(jīng)理通過(guò)部門(mén)主管一起指定項(xiàng)目小組成員。項(xiàng)目經(jīng)理項(xiàng)目小組核心成員概要設(shè)計(jì)說(shuō)明書(shū)詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)編制目的是說(shuō)明一個(gè)軟件各個(gè)層次中的每一個(gè)程序(每個(gè)模塊或子程序)的設(shè)計(jì)考慮,如果一個(gè)軟件系統(tǒng)比較簡(jiǎn)單,層次很少,可以不單獨(dú)編寫(xiě),有關(guān)內(nèi)容合并入概要設(shè)計(jì)說(shuō)明書(shū)。項(xiàng)目經(jīng)理項(xiàng)目小組成員詳細(xì)設(shè)計(jì)文檔項(xiàng)目計(jì)劃確定版本編碼實(shí)現(xiàn)根據(jù)設(shè)計(jì)開(kāi)發(fā)項(xiàng)目,同時(shí)有美工對(duì)操作界面進(jìn)行美化項(xiàng)目經(jīng)理、程序設(shè)計(jì)員、美工項(xiàng)目計(jì)劃修訂版本調(diào)試項(xiàng)目經(jīng)理提交測(cè)試申請(qǐng),由測(cè)試部門(mén)對(duì)項(xiàng)目進(jìn)行測(cè)試,項(xiàng)目小組配合測(cè)試部門(mén)修改軟件中的錯(cuò)誤項(xiàng)目經(jīng)理程序開(kāi)發(fā)人員測(cè)試部門(mén)測(cè)試申請(qǐng)測(cè)試計(jì)劃測(cè)試報(bào)告項(xiàng)目驗(yàn)收項(xiàng)目驗(yàn)收歸檔部門(mén)主管項(xiàng)目經(jīng)理項(xiàng)目所有文檔和程序步驟任務(wù)及說(shuō)明參與者生成文檔或程序可行性分析對(duì)項(xiàng)目的技術(shù),軟件工程過(guò)程定義了:方法使用的順序、要求交付的文檔資料、為保證質(zhì)量和適應(yīng)變化所需要的管理、軟件開(kāi)發(fā)各個(gè)階段完成的里程碑。軟件工程過(guò)程包含四種基本的過(guò)程活動(dòng):

plan:軟件規(guī)格說(shuō)明

do:軟件開(kāi)發(fā)

check:軟件確認(rèn)

action:軟件演進(jìn)軟件工程過(guò)程定義了:方法使用的順序、要求交付的文檔資料、為軟件生存周期模型是軟件工程思想的具體化,是跨越軟件生存周期的系統(tǒng)開(kāi)發(fā)、運(yùn)行、維護(hù)所實(shí)施的全部活動(dòng)和任務(wù)的過(guò)程框架。常用的軟件生存周期模型有瀑布模型,演化模型,螺旋模型,增量模型,噴泉模型,快速應(yīng)用開(kāi)發(fā)(RAD)模型。軟件生存周期模型是軟件工程思想的具體化,是跨越軟件生存周期的1.4軟件開(kāi)發(fā)模型1.4.1瀑布模型瀑布模型(waterfallmodel)將生存期的計(jì)劃時(shí)期、開(kāi)發(fā)時(shí)期和運(yùn)行時(shí)期,又細(xì)分為若干個(gè)階段:計(jì)劃時(shí)期可分為問(wèn)題定義、可行性研究、需求分析3個(gè)階段,開(kāi)發(fā)時(shí)期分為概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、軟件實(shí)現(xiàn)、軟件測(cè)試等階段,運(yùn)行時(shí)期則需要不斷進(jìn)行運(yùn)行維護(hù),需要不斷修改錯(cuò)誤、排除故障,或以用戶(hù)需求、運(yùn)行環(huán)境改變進(jìn)行改更調(diào)整。1.4軟件開(kāi)發(fā)模型1.4.1瀑布模型1.4軟件開(kāi)發(fā)模型圖1瀑布模型圖中的實(shí)線(xiàn)箭頭表示開(kāi)發(fā)流程,每個(gè)階段順序進(jìn)行,有時(shí)會(huì)返工;虛線(xiàn)箭頭表示維護(hù)工作的流程,根據(jù)不同情況返回到不同的階段進(jìn)行維護(hù)。1.4軟件開(kāi)發(fā)模型圖1瀑布模型圖中的實(shí)線(xiàn)箭頭表示開(kāi)發(fā)流程,1.4軟件開(kāi)發(fā)模型利用瀑布模型開(kāi)發(fā)軟件有3個(gè)特點(diǎn):

(1)開(kāi)發(fā)過(guò)程的順序性。瀑布模型開(kāi)發(fā)適用于軟件需求明確,開(kāi)發(fā)技術(shù)成熟,工程管理較嚴(yán)格的場(chǎng)合下使用。

(2)統(tǒng)籌兼顧不過(guò)早編程

(3)嚴(yán)格要求保證質(zhì)量。圖2循環(huán)模型1.4軟件開(kāi)發(fā)模型利用瀑布模型開(kāi)發(fā)軟件有3個(gè)特點(diǎn):圖2循1.4軟件開(kāi)發(fā)模型1.4.2快速原型模型快速原型模型需要先建造一個(gè)快速原型,如操作窗口及界面等,進(jìn)行客戶(hù)或潛在用戶(hù)與系統(tǒng)間的交流,用戶(hù)/客戶(hù)可以通過(guò)對(duì)原型的評(píng)價(jià)及改進(jìn)意見(jiàn),進(jìn)一步細(xì)化待開(kāi)發(fā)軟件的需求,通過(guò)逐步調(diào)整原型達(dá)到客戶(hù)要求,從中確定客戶(hù)的具體需求;然后按照需求開(kāi)發(fā)軟件。如圖所示。此模型最適合于可以先盡快構(gòu)建成一個(gè)原型的應(yīng)用系統(tǒng)。1.4軟件開(kāi)發(fā)模型1.4.2快速原型模型1.4軟件開(kāi)發(fā)模型1.4軟件開(kāi)發(fā)模型1.4軟件開(kāi)發(fā)模型1.4.3增量模型利用增量模型開(kāi)發(fā)的軟件被作為一系列的增量構(gòu)件來(lái)進(jìn)行設(shè)計(jì)、實(shí)現(xiàn)集成和測(cè)試,每個(gè)構(gòu)件具有一定功能,并最終能組合成一個(gè)具有完整功能軟件的模塊。如圖所示。1.4軟件開(kāi)發(fā)模型1.4.3增量模型1.4軟件開(kāi)發(fā)模型增量模型靈活性很強(qiáng),適用于軟件需求不明確、設(shè)計(jì)方案有一定風(fēng)險(xiǎn)的軟件項(xiàng)目。1.4軟件開(kāi)發(fā)模型1.4軟件開(kāi)發(fā)模型1.4.4螺旋模型螺旋模型將開(kāi)發(fā)過(guò)程劃分為制定計(jì)劃、風(fēng)險(xiǎn)分析、實(shí)施工程和客戶(hù)評(píng)估四類(lèi)活動(dòng)。沿著螺旋線(xiàn)每轉(zhuǎn)一圈,表示開(kāi)發(fā)出一個(gè)更完善的新軟件版本。如果開(kāi)發(fā)風(fēng)險(xiǎn)過(guò)大,開(kāi)發(fā)機(jī)構(gòu)和客戶(hù)無(wú)法接受,項(xiàng)目可能就此終止;多數(shù)情況下,將沿著螺旋線(xiàn)繼續(xù)進(jìn)行,自?xún)?nèi)向外逐步延伸,最終得到滿(mǎn)意的軟件產(chǎn)品。

1.4軟件開(kāi)發(fā)模型1.4.4螺旋模型1.4軟件開(kāi)發(fā)模型螺旋模型沿著螺線(xiàn)進(jìn)行多次迭代,其迭代過(guò)程如圖1-10所示。

(1)制定計(jì)劃:確定軟件目標(biāo),選定實(shí)施方案,弄清項(xiàng)目開(kāi)發(fā)的限制條件;

(2)風(fēng)險(xiǎn)分析:分析評(píng)估所選方案,考慮如何識(shí)別和消除風(fēng)險(xiǎn);

(3)實(shí)施工程:實(shí)施軟件開(kāi)發(fā)和驗(yàn)證;

(4)客戶(hù)評(píng)估:評(píng)價(jià)開(kāi)發(fā)工作,提出修正建議,制定下一步計(jì)劃。1.4軟件開(kāi)發(fā)模型螺旋模型沿著螺線(xiàn)進(jìn)行多次迭代,其迭代過(guò)程1.4軟件開(kāi)發(fā)模型1.4軟件開(kāi)發(fā)模型1.4軟件開(kāi)發(fā)模型1.4.5噴泉模型噴泉模型主要適合于利用面向?qū)ο蠹夹g(shù)的軟件開(kāi)發(fā)項(xiàng)目。它克服了瀑布模型不支持軟件重用和多項(xiàng)開(kāi)發(fā)活動(dòng)集成的局限性??墒归_(kāi)發(fā)過(guò)程具有迭代性和無(wú)間隙性。1.4軟件開(kāi)發(fā)模型1.4.5噴泉模型1.4軟件開(kāi)發(fā)模型噴泉模型是以面向?qū)ο蟮拈_(kāi)發(fā)方法為基礎(chǔ),以用戶(hù)需求為源泉。從如圖1-5的噴泉模型中可以看出7個(gè)特點(diǎn):(1)規(guī)定軟件開(kāi)發(fā)過(guò)程有4個(gè)階段:需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)和實(shí)現(xiàn),還可分成多個(gè)開(kāi)發(fā)步驟。(2)各階段相互重疊,反映了軟件過(guò)程并行性的特點(diǎn)。1.4軟件開(kāi)發(fā)模

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論