




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、軟件工程是指導(dǎo)計(jì)算機(jī)軟件開(kāi)發(fā)和維護(hù)的工程學(xué)科。采用工程的概念、原理、技術(shù)和方法來(lái)開(kāi)發(fā)與維護(hù)軟件,把經(jīng)過(guò)時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法 結(jié)合起來(lái),這就是軟件工程。軟件工程強(qiáng)調(diào)使用生存周期方法學(xué)和各種結(jié)構(gòu)分析及結(jié)構(gòu)設(shè)計(jì) 技術(shù)。它們是在七十年代為了對(duì)付應(yīng)用軟件日益增長(zhǎng)的復(fù)雜程度、漫長(zhǎng)的開(kāi)發(fā)周期以及用戶對(duì)軟件產(chǎn)品經(jīng)常不滿意的狀況而發(fā)展起來(lái)的。人類解決復(fù)雜問(wèn)題時(shí)普遍采用的一個(gè)策略就是“各個(gè)擊破”,也就是對(duì)問(wèn)題進(jìn)行分解然后再分別解決各個(gè)子問(wèn)題的策略。軟件工程采用的 生存周期方法學(xué)就是從時(shí)間角度對(duì)軟件開(kāi)發(fā)和維護(hù)的復(fù)雜問(wèn)題進(jìn)行分解,把軟件生存的漫長(zhǎng)周期依次劃分為若干個(gè)階段,每個(gè)階段
2、有相對(duì)獨(dú)立的任務(wù),然后逐步完成每個(gè)階段的任務(wù)。采用軟件工程方法論開(kāi)發(fā)軟件的時(shí)候,從對(duì)任務(wù)的抽象邏輯分析開(kāi)始,一個(gè)階段一個(gè)階段地進(jìn)行開(kāi)發(fā)。前一個(gè)階段任務(wù)的完成是開(kāi)始進(jìn)行后一個(gè)階段工作的前提和基礎(chǔ),而后一階段任務(wù)的完成通常是使前一階段提出的解法更進(jìn)一步具體化,加進(jìn)了更多的物理細(xì)節(jié)。每一個(gè)階段的開(kāi)始和結(jié)束都有嚴(yán)格標(biāo)準(zhǔn),對(duì)于任何兩個(gè)相鄰的階段而言,前一階段的結(jié)束標(biāo)準(zhǔn)就是后一階段的開(kāi)始標(biāo)準(zhǔn)。在每一個(gè)階段結(jié)束之前都必須進(jìn)行正式嚴(yán)格的技術(shù)審查和管理復(fù)審,從技術(shù)和管理兩方面對(duì)這個(gè)階段的開(kāi)發(fā)成果進(jìn)行檢查,通過(guò)之后這個(gè)階段才算結(jié)束; 如果檢查通不過(guò),則必須進(jìn)行必要的返工,并且返工后還要再經(jīng)過(guò)審查。 審查的一條主要
3、標(biāo)準(zhǔn)就是每 個(gè)階段都應(yīng)該交出“最新式的”(即和所開(kāi)發(fā)的軟件完全一致的)高質(zhì)量的文檔資料,從而保證在軟件開(kāi)發(fā)工程結(jié)束時(shí)有一個(gè)完整準(zhǔn)確的軟件配置交付使用。文檔是通信的工具,它們清楚準(zhǔn)確地說(shuō)明了到這個(gè)時(shí)候?yàn)橹?,關(guān)于該項(xiàng)工程已經(jīng)知道了什么,同時(shí)確立了下一步工作的基礎(chǔ)。此外,文檔也起備忘錄的作用,如果文檔不完整,那么一定是某些工作忘記做了, 在進(jìn)入生存周期的下一階段之前,必須補(bǔ)足這些遺漏的細(xì)節(jié)。在完成生存周期每個(gè)階段的任務(wù)時(shí),應(yīng)該采用適合該階段任務(wù)特點(diǎn)的系統(tǒng)化的技術(shù)方法,結(jié)構(gòu)分析或結(jié)構(gòu)設(shè)計(jì)技術(shù)。 把軟件生存周期劃分成若干個(gè)階段,每個(gè)階段的任務(wù)相對(duì)獨(dú)立,而且比較簡(jiǎn)單,便于不同人員分工協(xié)作,從而降低了整個(gè)軟
4、件開(kāi)發(fā)工程的困難程度;在軟件生存周期的每個(gè)階段都采用科學(xué)的管理技術(shù)和良好的技術(shù)方法,而且在每個(gè)階段結(jié)束之前都從技術(shù)和管理兩個(gè)角度進(jìn)行嚴(yán)格 的審查,合格之后才開(kāi)始下一階段的工作,這就使軟件開(kāi)發(fā)工程的全過(guò)程以一種有條不紊的方式進(jìn)行,保證了軟件的質(zhì)量,特別是提高了軟件的可維護(hù)性??傊?,采用軟件工程方法論可以大大提高軟件開(kāi)發(fā)的成功率,軟件開(kāi)發(fā)的生產(chǎn)率也能明顯提高。目前劃分軟件生存周期階段的方法有許多種,軟件規(guī)模、種類、開(kāi)發(fā)方式、開(kāi)發(fā)環(huán)境以及開(kāi)發(fā)時(shí)使用的方法論都影響軟件生存周期階段的劃分。在劃分軟件生存周期的階段時(shí)應(yīng)該遵循的一條基本原則就是使 各階段的任務(wù)彼此間盡可能相對(duì)獨(dú)立,同一階段各項(xiàng)任務(wù)的性質(zhì)盡可
5、能相同,從而降低每個(gè)階段任務(wù)的復(fù)雜程度,簡(jiǎn)化不同階段之間的聯(lián)系,有利于軟件開(kāi)發(fā)工程的組織管理。一般說(shuō)來(lái),軟件生存周期由軟件定義、 軟件開(kāi)發(fā)和軟件維護(hù)三個(gè)時(shí)期組成,每個(gè)時(shí)期又進(jìn)一步劃分成若干個(gè)階段。下面的論述主要針對(duì)應(yīng)用軟件,對(duì)系統(tǒng)軟件也基本適用。 軟件定義時(shí)期的任務(wù)是確定軟件開(kāi)發(fā)工程必須完成的總目標(biāo);確定工程的可行性,導(dǎo)出實(shí)現(xiàn)工程目標(biāo)應(yīng)該采用的策略及系統(tǒng)必須完成的功能;估計(jì)完成該項(xiàng)工程需要的資源和成本,并且制定工程進(jìn)度表。這個(gè)時(shí)期的工作通常又稱為系統(tǒng)分析,由系統(tǒng)分析員負(fù)責(zé)完成。軟件定義時(shí)期通常進(jìn)一步劃分成三個(gè)階段,即問(wèn)題定義、可行性研究和需求分析。 開(kāi)發(fā)時(shí)期具體設(shè)計(jì)和實(shí)現(xiàn)在前一個(gè)時(shí) 期定義的軟
6、件,它通常由下述四個(gè)階段組成:總體設(shè)計(jì),詳細(xì)設(shè)計(jì),編碼和單元測(cè)試,綜合 測(cè)試。維護(hù)時(shí)期的主要任務(wù)是使軟件持久地滿足用戶的需要。具體地說(shuō),當(dāng)軟件在使用過(guò)程中發(fā)現(xiàn)錯(cuò)誤時(shí)應(yīng)該加以改正;當(dāng)環(huán)境改變時(shí)應(yīng)該修改軟件以適應(yīng)新的環(huán)境;當(dāng)用戶有新要求時(shí)應(yīng)該及時(shí)改進(jìn)軟件滿足用戶的新需要。通常對(duì)維護(hù)時(shí)期不再進(jìn)一步劃分階段,但是每一次維護(hù)活動(dòng)本質(zhì)上都是一次壓縮和簡(jiǎn)化了的定義和開(kāi)發(fā)過(guò)程。下面扼要介紹軟件生存周期每個(gè)階段的基本任務(wù)和結(jié)束標(biāo)準(zhǔn)。問(wèn)題定義問(wèn)題定義階段必須回答的關(guān)鍵問(wèn)題:“要解決的問(wèn)題是什么?如果不知道問(wèn)題是什么就試圖解決這個(gè)問(wèn)題,顯然是盲目的,只會(huì)白白浪費(fèi)時(shí)間和金錢,最終得出的結(jié)果很可能是毫無(wú)意義的。盡管確切
7、地定義問(wèn)題的必要性是十分明顯的,但是在實(shí)踐中它卻可能是最容易被忽視的一個(gè)步驟。通過(guò)問(wèn)題定義階段的工作,系統(tǒng)分析員應(yīng)該提出關(guān)于問(wèn)題性質(zhì)、 工程目標(biāo)和規(guī)模的書(shū)面報(bào)告。通過(guò)對(duì)系統(tǒng)的實(shí)際用戶和使用部門負(fù)責(zé)人的訪問(wèn)調(diào)查,分析員扼要地寫出他對(duì)問(wèn)題的理解,并在用戶和使用部門負(fù)責(zé)人的會(huì)議上認(rèn)真討論這份書(shū)面報(bào)告, 澄清含糊不精的地方, 改正理解不正確的地方, 最后得出一份雙方 都滿意的文檔。問(wèn)題定義階段是軟件生存周期中最簡(jiǎn)短的階段,一般只需要一天甚至更少的時(shí)間。2可行性研究。這個(gè)階段要回答的關(guān)鍵問(wèn)題:“對(duì)于上一個(gè)階段所確定的問(wèn)題有行得通的解決辦法嗎?” 為了回答這個(gè)問(wèn)題,系統(tǒng)分析員需要進(jìn)行一次大大壓縮和簡(jiǎn)化了的
8、系統(tǒng) 分析和設(shè)計(jì)的過(guò)程,也就是在較抽象的高層次上進(jìn)行的分析和設(shè)計(jì)的過(guò)程。可行性研究應(yīng)該比較簡(jiǎn)短,這個(gè)階段的任務(wù)不是具體解決問(wèn)題,而是研究問(wèn)題的范圍,探索這個(gè)問(wèn)題是否值得去解,是否有可行的解決辦法。 在問(wèn)題定義階段提出的對(duì)工程目標(biāo)和規(guī)模的報(bào)告通常比較 含糊??尚行匝芯侩A段應(yīng)該導(dǎo)出系統(tǒng)的高層邏輯模型(通常用數(shù)據(jù)流圖表示),并且在此基礎(chǔ)上更準(zhǔn)確、更具體地確定工程規(guī)模和目標(biāo)。然后分析員更準(zhǔn)確地估計(jì)系統(tǒng)的成本和效益, 對(duì)建議的系統(tǒng)進(jìn)行仔細(xì)的成本/效益分析是這個(gè)階段的主要任務(wù)之一。可行性研究的結(jié)果是使用部門負(fù)責(zé)人做出是否繼續(xù)進(jìn)行這項(xiàng)工程的決定的重要依據(jù),一般說(shuō)來(lái),只有投資可能取得較大效益的那些工程項(xiàng)目才值
9、得繼續(xù)進(jìn)行下去。可行性研究以后的那些階段將需要投入要多的人力物力。及時(shí)中止不值得投資的工程項(xiàng)目,可以避免更大的浪費(fèi)。3需求分析這個(gè)階段的任務(wù)仍然不是具體地解決問(wèn)題,而是準(zhǔn)確地確定“為了解決這個(gè)問(wèn)題,目標(biāo)系統(tǒng)必須做什么”,主要是確定目標(biāo)系統(tǒng)必須具備哪些功能。用戶了解他們所面對(duì)的問(wèn)題,知道必須做 什么,但是通常不能完整準(zhǔn)確地表達(dá)出他們的要求,更不知道怎樣利用計(jì)算機(jī)解決他們的問(wèn)題;軟件開(kāi)發(fā)人員知道怎樣使用軟件實(shí)現(xiàn)人們的要求,但是對(duì)特定用戶的具體要求并不完全清楚。因此系統(tǒng)分析員在需求分析階段必須和用戶密切配合,充分交流信息,以得出經(jīng)過(guò)用 戶確認(rèn)的系統(tǒng)邏輯模型。通常用數(shù)據(jù)流圖、數(shù)據(jù)字典和簡(jiǎn)要的算法描述表
10、示系統(tǒng)的邏輯模型。在需求分析階段確定的系統(tǒng)邏輯模型是以后設(shè)計(jì)和實(shí)現(xiàn)目標(biāo)系統(tǒng)的基礎(chǔ),因此必須準(zhǔn)確完整地體現(xiàn)用戶的要求。系統(tǒng)分析員通常都是計(jì)算機(jī)軟件專家,技術(shù)專家一般都喜歡很快著手進(jìn)行具體設(shè)計(jì),然而,一旦分析員開(kāi)始談?wù)摮绦蛟O(shè)計(jì)的細(xì)節(jié),就會(huì)脫離用戶,使他們不能繼續(xù)提出他們的要求和建議。較件工程使用的結(jié)構(gòu)分析設(shè)計(jì)的方法為每個(gè)階段都規(guī)定了特定的結(jié) 束標(biāo)準(zhǔn),需求分析階段必須提出完整準(zhǔn)確的系統(tǒng)邏輯模型,經(jīng)過(guò)用戶確認(rèn)之后才能進(jìn)入下一個(gè)階段,這就可以有效地防止和克服急于著手進(jìn)行具體設(shè)計(jì)的傾向。4總體設(shè)計(jì)。這個(gè)階段必須回答的關(guān)鍵問(wèn)題是:“概括地說(shuō),應(yīng)該如何解決這個(gè)問(wèn)題?”首先,應(yīng)該考慮幾種可能 的解決方案。歹U如
11、,目標(biāo)系統(tǒng)的一些主要功能是用計(jì)算機(jī)自動(dòng)完成還是用人工完成;如果使用計(jì)算機(jī),那么是使用批處理方式還是人機(jī)交互方式;信息存儲(chǔ)使用傳統(tǒng)的文件系統(tǒng)還是數(shù)據(jù)庫(kù)。通常至少應(yīng)該考慮下述幾類可能的方案:低成本的解決方案。 系統(tǒng)只能完成最必要的工作,不能多做一點(diǎn)額處的工作。中等成本的解決方案。這樣的系統(tǒng)不僅能夠很好地完成預(yù) 定的任務(wù),使用起來(lái)很方便,而且可能還具有用戶沒(méi)有具體指定的某些功能和特點(diǎn)。雖然用戶沒(méi)有提出這些具體要求,但是系統(tǒng)分析員根據(jù)自己的知識(shí)和經(jīng)驗(yàn)斷定,這些附加的能力在實(shí)踐中將證明是很有價(jià)值的。高成本的“十全十美”的系統(tǒng)。這樣的系統(tǒng)具有用戶可能希望有的所有功能和特點(diǎn)。系統(tǒng)分析員應(yīng)該使用系統(tǒng)流程圖或其
12、他工具描述每種可能的系統(tǒng),估計(jì)每種方案的成本和效益,還應(yīng)該在充分權(quán)衡各種方案的利弊的基礎(chǔ)上,推薦一個(gè)較好的系統(tǒng)(最佳方案),并且制定實(shí)現(xiàn)所推薦的系統(tǒng)的詳細(xì)計(jì)劃。如果用戶接受分析員推薦的系統(tǒng),則可以著手完成本階段的另一項(xiàng)主要工作。上面的工作確定了解決問(wèn)題的策略以及目標(biāo)系統(tǒng)需要哪些程序,但是,怎樣設(shè)計(jì)這些程序呢?結(jié)構(gòu)設(shè)計(jì)的一條基本原理就是程序應(yīng)該模塊化, 也就是一個(gè)大程序應(yīng)該由許多規(guī)模適中的模塊按合理的層次結(jié)構(gòu)組織而成??傮w設(shè)計(jì)階段的第二項(xiàng)主要任務(wù)就是設(shè)計(jì)軟件的結(jié)構(gòu),也就是確定程序由哪些模塊組成以及模塊間的關(guān)系。通常用層次圖或結(jié)構(gòu)圖描繪軟件的結(jié)構(gòu)。5詳細(xì)設(shè)計(jì)??傮w設(shè)計(jì)階段以比較抽象概括的方式提出了
13、解決問(wèn)題的辦法。 詳細(xì)設(shè)計(jì)階段的任務(wù)就是把解法具體化,也就是回答下面這個(gè)關(guān)鍵問(wèn)題:“應(yīng)該怎樣具體地實(shí)現(xiàn)這個(gè)系統(tǒng)呢?”這個(gè)階段的任務(wù)還不是編寫程序,而是設(shè)計(jì)出程序的詳細(xì)規(guī)格說(shuō)明。這種規(guī)格說(shuō)明的作用很類似于其他工程領(lǐng)域中工程師經(jīng)常使用的工程藍(lán)圖,它們應(yīng)該包含必要的細(xì)節(jié), 程序員可以根據(jù)它們寫出實(shí)際的程序代碼。 通常用HIP O圖(層次圖加輸入/處理/輸出圖) 或PDL語(yǔ)言(過(guò)程設(shè)計(jì)語(yǔ)言)描述詳細(xì)設(shè)計(jì)的結(jié)果。6編碼和單元測(cè)試。這個(gè)階段的關(guān)鍵任務(wù)是寫出正確的容易理解、容易維護(hù)的程序模塊。程序員應(yīng)該根據(jù)目標(biāo)系統(tǒng)的性質(zhì)和實(shí)際環(huán)境,選取一種適當(dāng)?shù)母呒?jí)程序設(shè)計(jì)語(yǔ)言(必要時(shí)用匯編語(yǔ)言),把說(shuō)細(xì)設(shè)計(jì)的結(jié)果翻譯成用
14、選定的語(yǔ)言書(shū)寫的程序,并且仔細(xì)測(cè)試編寫出的每一個(gè)模塊。7綜合測(cè)試。這個(gè)階段的關(guān)鍵任務(wù)是通過(guò)各種類型的測(cè)試(及相應(yīng)的調(diào)試)使軟件達(dá)到預(yù)定的要求。最基本的測(cè)試是集成測(cè)試和驗(yàn)收測(cè)試。所謂集成測(cè)試是根據(jù)設(shè)計(jì)的軟件結(jié)構(gòu),把經(jīng)過(guò)單元測(cè)試檢驗(yàn)的模塊按某種選定的策略裝配起來(lái),在裝配過(guò)程中對(duì)程序進(jìn)行必要的測(cè)試。所謂驗(yàn)收測(cè)試則是按照規(guī)格說(shuō)明書(shū)的規(guī)定(通常在需求分析階段確定),由用戶(或在用戶積極參加下) 對(duì)目標(biāo)系統(tǒng)進(jìn)行驗(yàn)收。 必要時(shí)還可以再通過(guò)現(xiàn)場(chǎng)測(cè)試或平行運(yùn)行等方法 對(duì)目標(biāo)系統(tǒng)進(jìn)一步測(cè)試檢驗(yàn)。為了使用戶能夠積極參加驗(yàn)收測(cè)試,并且在系統(tǒng)投入生產(chǎn)性運(yùn)行以后能夠正確有效地使用這個(gè)系統(tǒng),通常需要以正式的或非正式的方式對(duì)
15、用戶進(jìn)行培訓(xùn)。通過(guò)對(duì)軟件測(cè)試結(jié)果的分析可以預(yù)測(cè)軟件的可靠性;反之,根據(jù)對(duì)軟件可靠性的要求也可以決定測(cè)試和調(diào)試過(guò)程什么時(shí)候可以結(jié)束。應(yīng)該用正式的文檔資料把測(cè)試計(jì)劃、詳細(xì)測(cè)試方案以及實(shí)際測(cè)試結(jié)果保存下來(lái),做為軟件配置的一個(gè)組成成分。8軟件維護(hù)。維護(hù)階段的關(guān)鍵任務(wù)是,通過(guò)各種必要的維護(hù)活動(dòng)使系統(tǒng)持久地滿足用戶的需要。通常有四類維護(hù)活動(dòng): 改正性維護(hù),也就是診斷和改正在使用過(guò)程中發(fā)現(xiàn)的軟件錯(cuò)誤;適應(yīng)性維護(hù),即修改軟件以適應(yīng)環(huán)境的變化;完善性維護(hù),即根據(jù)用戶的要求改進(jìn)或擴(kuò)充軟件使它更完善;預(yù)防性維護(hù),即修改軟件為將來(lái)的維護(hù)活動(dòng)預(yù)先做準(zhǔn)備。雖然沒(méi)有把維護(hù)階段進(jìn)一步劃分成更小的階段,但是實(shí)際上每一項(xiàng)維護(hù)活動(dòng)都應(yīng)該經(jīng)過(guò)提出維
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 乙方提供合同范本
- 勞務(wù)派遣不給合同范本
- 養(yǎng)殖餌料合同范本
- 團(tuán)購(gòu)合同范本
- 臨工勞動(dòng)合同范本
- 人才公寓采購(gòu)合同范本
- 沙場(chǎng)租賃合同范本
- 健身房轉(zhuǎn)讓合同范本
- 供電維修合同范本
- 合伙人底薪合同范本
- 管理學(xué)-北京師范大學(xué)中國(guó)大學(xué)mooc課后章節(jié)答案期末考試題庫(kù)2023年
- 2023年司法鑒定程序通則
- 網(wǎng)店運(yùn)營(yíng)PPT全套完整教學(xué)課件
- 高考日語(yǔ)基礎(chǔ)歸納總結(jié)與練習(xí)(一輪復(fù)習(xí))
- 1.跨境電子商務(wù)概述
- 居民自建房經(jīng)營(yíng)業(yè)態(tài)不超過(guò)三種承諾書(shū)
- 管理百年知到章節(jié)答案智慧樹(shù)2023年南昌大學(xué)
- 萬(wàn)邦胰島素注射液
- 汽車維修工高級(jí)考試試題含參考答案
- 食品銷售監(jiān)督管理工作培訓(xùn)
- 《算法與數(shù)字生活》 教學(xué)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論