軟件工程基礎(chǔ)期末復(fù)習(xí)資料完整版_第1頁(yè)
軟件工程基礎(chǔ)期末復(fù)習(xí)資料完整版_第2頁(yè)
軟件工程基礎(chǔ)期末復(fù)習(xí)資料完整版_第3頁(yè)
軟件工程基礎(chǔ)期末復(fù)習(xí)資料完整版_第4頁(yè)
軟件工程基礎(chǔ)期末復(fù)習(xí)資料完整版_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、2.文檔有何作用?程序代碼屬不屬于文檔?答:文檔指的是在軟件開(kāi)發(fā)和維護(hù)過(guò)程中形成的文字記錄。從軟件計(jì)劃、分析、設(shè)計(jì)、實(shí)現(xiàn)(編碼和測(cè)試)、維護(hù)等開(kāi)發(fā)活動(dòng)中形成的各種文件。文檔屬于軟件的一部分,是軟件維護(hù)和升級(jí)的重要依據(jù),并且文檔內(nèi)容要與代碼同步更新。沒(méi)有文檔的軟件維護(hù)不但不能延長(zhǎng)反而會(huì)縮短軟件壽命。文檔包括需求規(guī)格說(shuō)明書(shū)、設(shè)計(jì)說(shuō)明書(shū)、用戶使用說(shuō)明書(shū)、在線幫助等,當(dāng)然程序代碼是必不可少的一種軟件文檔。3.什么是軟件危機(jī)?什么原因產(chǎn)生了軟件危機(jī)?答:軟件危機(jī)指的是在計(jì)算機(jī)軟件的開(kāi)發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題。產(chǎn)生的原因是主客觀不相適應(yīng)。見(jiàn)書(shū)圖1-2。l客觀上:軟件規(guī)模增大、功能要求越來(lái)越復(fù)雜

2、,需求不斷變化等;l主觀上:傳統(tǒng)的個(gè)體化開(kāi)發(fā)觀念和方法,無(wú)開(kāi)發(fā)過(guò)程指導(dǎo),無(wú)開(kāi)發(fā)過(guò)程管理;由于主客觀矛盾,必然產(chǎn)生軟件質(zhì)量差、開(kāi)發(fā)超期、超預(yù)算、維護(hù)困難等現(xiàn)象。5.軟件工程三要素是什么?答:軟件工程三要素是從計(jì)算機(jī)科學(xué)觀點(diǎn)看軟件工程,即從軟件開(kāi)發(fā)的技術(shù)層面應(yīng)該有過(guò)程、方法和工具。見(jiàn)圖1-4。(2)“過(guò)程”是軟件產(chǎn)品加工所經(jīng)歷的一系列有組織的活動(dòng),保證能夠合理、高質(zhì)量和及時(shí)地開(kāi)發(fā)出軟件。過(guò)程定義的活動(dòng)集合及其序列見(jiàn)第2章。(3)“方法”為軟件開(kāi)發(fā)提供“如何做”的技術(shù),它涵蓋了項(xiàng)目計(jì)劃、需求分析、系統(tǒng)設(shè)計(jì)、程序?qū)崿F(xiàn)、測(cè)試與維護(hù)等一系列活動(dòng)的做法。如經(jīng)常說(shuō)的面向結(jié)構(gòu)、面向?qū)ο?、面向組件等開(kāi)發(fā)方法,項(xiàng)目

3、管理中估算、度量、計(jì)劃等管理方法。軟件工程以介紹方法為主,本書(shū)從第3章開(kāi)始逐步介紹開(kāi)發(fā)過(guò)程所用到的方法。(4)“工具”為過(guò)程和方法提供自動(dòng)的或半自動(dòng)的支持。這些工具既包括軟件也有硬件。軟件工具包括編程、建模、管理等開(kāi)發(fā)工具。通過(guò)網(wǎng)絡(luò)環(huán)境把這些軟件工具集成起來(lái)搭建一個(gè)支持團(tuán)隊(duì)開(kāi)發(fā)的平臺(tái),稱(chēng)之為計(jì)算機(jī)輔助軟件工程(computer aided softwareengineering,case)。case集成了軟件、硬件和一個(gè)存放開(kāi)發(fā)過(guò)程信息的軟件工程數(shù)據(jù)庫(kù),形成了一個(gè)軟件工程環(huán)境。6.軟件工程的目標(biāo)、過(guò)程和原則是什么?答:目標(biāo)、過(guò)程、原則是一切工程的三維框架,它是以工程的觀點(diǎn)來(lái)看待軟件開(kāi)發(fā)。見(jiàn)書(shū)1

4、.5.2節(jié)(1)軟件工程的目標(biāo):降低成本,及時(shí)交付高質(zhì)量的軟件產(chǎn)品(高質(zhì)量、高效率、高效益)。(2)實(shí)現(xiàn)目標(biāo)的過(guò)程:完成產(chǎn)品加工的過(guò)程。它包括:基本過(guò)程、支持過(guò)程和組織過(guò)程。(3)進(jìn)行過(guò)程應(yīng)遵守的原則:原則就是過(guò)程中的軌道約束。它包括:選取適宜開(kāi)發(fā)范型、采用合適的設(shè)計(jì)方法、提供高質(zhì)量的工程支持、重視開(kāi)發(fā)過(guò)程的管理。7.軟件工程原理有哪幾條?答:軟件工程的基本原理是指導(dǎo)軟件工程實(shí)踐的思想方法,一共有7條,這7條原理相互支撐,保證軟件產(chǎn)品的質(zhì)量和開(kāi)發(fā)效率。見(jiàn)書(shū)1.5.4節(jié)。(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é)果

5、應(yīng)能清楚地審查;(6)開(kāi)發(fā)小組的人員應(yīng)少而精;(7)承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性;2.軟件過(guò)程與軟件工程有什么區(qū)別和聯(lián)系?答:(1)過(guò)程與工程是兩個(gè)層面的問(wèn)題,過(guò)程是加工高質(zhì)量軟件產(chǎn)品的活動(dòng)集合和順序,具體的投入產(chǎn)出過(guò)程,關(guān)注在技術(shù)層面;工程是對(duì)過(guò)程的投入進(jìn)行資源協(xié)調(diào),是向過(guò)程要效益的管理層面。(2)軟件過(guò)程是軟件工程的子集。在軟件工程的過(guò)程、方法和工具三要素中,它是底層要素;在軟件工程的目標(biāo)、原則和過(guò)程三維全景圖中,通過(guò)軟件過(guò)程才能實(shí)現(xiàn)軟件工程的目標(biāo)。3.什么是軟件生命周期?與軟件過(guò)程有何區(qū)別和聯(lián)系?答:(1)軟件生存周期:軟件產(chǎn)品從定義到開(kāi)發(fā)、經(jīng)過(guò)使用和維護(hù),直到最終被棄用;(2)兩者

6、指同一個(gè)事情,只是表達(dá)問(wèn)題的角度不同:l軟件過(guò)程:關(guān)注產(chǎn)品加工的活動(dòng)集合、順序和方法論;l生命周期:關(guān)注軟件產(chǎn)品從誕生到消亡的生命歷程,實(shí)質(zhì)內(nèi)容也就是軟件過(guò)程;因此軟件過(guò)程=軟件生存周期,“軟件生存周期模型”也稱(chēng)為“軟件過(guò)程模型”或“軟件開(kāi)發(fā)模型”。5.軟件生命周期劃分哪些階段?每個(gè)階段有哪些基本活動(dòng)?答:生存周期的基本劃分:分成三個(gè)大的階段也稱(chēng)三個(gè)時(shí)期,即計(jì)劃時(shí)期、開(kāi)發(fā)時(shí)期和運(yùn)行時(shí)期。每個(gè)時(shí)期又由若干活動(dòng)組成。l計(jì)劃時(shí)期:是軟件項(xiàng)目的初始階段。主要活動(dòng)及順序是問(wèn)題定義和可行性研究;活動(dòng)內(nèi)容是搞清軟件的開(kāi)發(fā)目的、規(guī)模、約束條件和技術(shù)方案,屬論證階段;目標(biāo)是獲取軟件開(kāi)發(fā)項(xiàng)目。l開(kāi)發(fā)時(shí)期:軟件開(kāi)發(fā)

7、的第二階段。包括的活動(dòng)及順序是分析、設(shè)計(jì)和實(shí)現(xiàn);活動(dòng)內(nèi)容是逐步細(xì)化軟件模型、經(jīng)過(guò)編碼和測(cè)試,最終得到可運(yùn)行的軟件。開(kāi)發(fā)時(shí)期屬實(shí)質(zhì)性開(kāi)發(fā)階段;目標(biāo)是構(gòu)建高質(zhì)量的軟件。l運(yùn)行時(shí)期:軟件生存周期的最后階段,軟件處在運(yùn)行中,往往也是最長(zhǎng)階段。主要活動(dòng)就是維護(hù);活動(dòng)內(nèi)容是治療和進(jìn)化軟件;目標(biāo)是延長(zhǎng)軟件的壽命。6.介紹了哪四種傳統(tǒng)開(kāi)發(fā)模型?各有何特點(diǎn)?答:瀑布、原型、增量、螺旋四個(gè)傳統(tǒng)模型:(1)瀑布模型:主要體現(xiàn)了分階段、有控制的思想。活動(dòng)間強(qiáng)調(diào)按順序、文檔化;存在的問(wèn)題是:過(guò)于理想化,每一步的工作必須完整準(zhǔn)確,否則無(wú)法進(jìn)行下一步工作。(2)原型模型:需求分析入手快速、表達(dá)直觀、容易交流。重點(diǎn)解決瀑布模

8、型需求分析入手難的問(wèn)題。(3)增量模型:對(duì)于需求復(fù)雜的系統(tǒng),采用分塊開(kāi)發(fā),逐步集成的開(kāi)發(fā)策略。增量體現(xiàn)了演進(jìn)、迭代思想,每一塊就是一個(gè)增量。每個(gè)增量是一次迭代。增量模型的新版本叫做“極限編程”(xp)。(4)螺旋模型:融合了上述三種模型,融進(jìn)了循環(huán)往復(fù)、強(qiáng)化了演進(jìn)迭代的思想,增加風(fēng)險(xiǎn)控制環(huán)節(jié)。但風(fēng)險(xiǎn)分析的正確性是左右軟件演進(jìn)的關(guān)鍵因素。7.當(dāng)需求不能一次搞清,且系統(tǒng)要求比較復(fù)雜時(shí)應(yīng)選用哪種開(kāi)發(fā)模型較適合?答:開(kāi)發(fā)模型不是孤立或排斥的,相互借鑒和參考。在上述四種古典螺旋模型中,螺旋模型是一種綜合性的模型,適應(yīng)于較復(fù)雜的系統(tǒng)。8.rup模型有哪些優(yōu)越性?為何得到如此廣泛的應(yīng)用?答:rup采用了時(shí)間

9、與過(guò)程的二維表達(dá)方式,全面貫穿了軟件開(kāi)發(fā)分段、分層、細(xì)化、往復(fù)、循環(huán)、迭代、并發(fā)、重疊、演進(jìn)、基線、里程碑、評(píng)審、控制等方法論。(1)生命周期模型分為初始、細(xì)化、構(gòu)造和交付四個(gè)階段,比三個(gè)時(shí)期的傳統(tǒng)模型更為合理。因?yàn)楦鞣N活動(dòng)不是隨階段的劃分而戛然截止,每個(gè)階段多種活動(dòng)是重疊、并發(fā)、延續(xù)、主次分明;(2)階段控制采用了基線與里程牌,工作有起點(diǎn)、有目標(biāo)、有計(jì)劃;(3)模型反映了軟件開(kāi)發(fā)需要團(tuán)隊(duì)合作,因此rup是一個(gè)團(tuán)隊(duì)模型;(4)雙重迭代,大迭代(周期迭代)完成一個(gè)新版本,小迭代(階段內(nèi)迭代)完成里程牌目標(biāo);(5)rup并不是不講究維護(hù),維護(hù)只是一個(gè)新的增量迭代(周期迭代)過(guò)程,在過(guò)程集合中有“配

10、置和變更管理”活動(dòng)來(lái)管理軟件的維護(hù);1.軟件計(jì)劃時(shí)期有哪些工作活動(dòng)?目標(biāo)是什么?答:軟件計(jì)劃是基本生命周期模型中的的第一個(gè)階段,作為項(xiàng)目的起點(diǎn),多數(shù)活動(dòng)處在商務(wù)層面,面向決策層。主要活動(dòng)有三項(xiàng):(1)問(wèn)題研究;(2)可行性研究;(3)項(xiàng)目計(jì)劃。該階段目標(biāo)就是完成產(chǎn)品立項(xiàng),中心工作是確定開(kāi)發(fā)什么樣的軟件、是否值得去開(kāi)發(fā)、繼而作出初步的安排。在rup模型中屬于“初始階段”,它的里程牌就是“軟件目標(biāo)”。2.問(wèn)題定義階段的目的、任務(wù)是什么?答:l問(wèn)題定義階段的目的:弄清要計(jì)算機(jī)解決的根本問(wèn)題所在(目的),確定新系統(tǒng)的作用域(范圍與規(guī)模),以及項(xiàng)目所需的資源、工期和經(jīng)費(fèi)。就是搞清解決問(wèn)題的題意和約束條件

11、。l主要任務(wù):在向用戶調(diào)查研究的基礎(chǔ)上,編寫(xiě)項(xiàng)目報(bào)告提交審查,并作為下一次工作可行性分析的依據(jù)。3.可行性研究的目的、任務(wù)是什么?答:l可行性研究的目的:確定項(xiàng)目以最小的代價(jià)在盡可能短(限定)時(shí)間里是否能夠開(kāi)發(fā),是否值得去開(kāi)發(fā)。即在約束條件下問(wèn)題是否有解。l可行性分析的主要任務(wù):可行性分析,寫(xiě)可行性報(bào)告,作出開(kāi)發(fā)計(jì)劃。在了解客戶的要求及現(xiàn)實(shí)環(huán)境基礎(chǔ)上,從技術(shù)、經(jīng)濟(jì)和社會(huì)因素等三方面研究并論證本軟件項(xiàng)目的可行性,編輯可行性研究報(bào)告,制定初步項(xiàng)目開(kāi)發(fā)計(jì)劃。4.從哪幾個(gè)方面研究可行性?分別考慮什么問(wèn)題?答:可行性研究從技術(shù)可行性,經(jīng)濟(jì)可行性,社會(huì)可行性三個(gè)方面研究;l技術(shù)可行性包括開(kāi)發(fā)風(fēng)險(xiǎn)分析,資源

12、分析,技術(shù)分析;分析利用現(xiàn)有的技術(shù)能否實(shí)現(xiàn),能否解決系統(tǒng)中的技術(shù)難題,所開(kāi)發(fā)的系統(tǒng)能否達(dá)到所要求的功能和性能,系統(tǒng)對(duì)技術(shù)人員的要求,現(xiàn)有的技術(shù)人員能否勝任,開(kāi)發(fā)所需的軟件與硬件能否如期得到等;l經(jīng)濟(jì)可行性包括一次性開(kāi)發(fā)費(fèi)用的估算,年運(yùn)行費(fèi)用的估算,效益估算;上述估算的基礎(chǔ)是正確估算出軟件的規(guī)模,進(jìn)而才能估算出工期、資源和成本。l社會(huì)可行性主要考慮市場(chǎng),政策和法律方面問(wèn)題;5.技術(shù)可行性分析的步驟?答:l復(fù)查確認(rèn)系統(tǒng)目標(biāo)、規(guī)模;l研究目前正在使用系統(tǒng)工作流程;l導(dǎo)出要實(shí)現(xiàn)的新系統(tǒng)高層邏輯模型;l重新定義問(wèn)題;l導(dǎo)出和評(píng)價(jià)供選擇的方案;l推薦可行的方案;6.技術(shù)可行性研究中可用什么圖形工具表達(dá)現(xiàn)有

13、系統(tǒng)的模型?答:可行性研究中也需要建立一些模型,如業(yè)務(wù)模型、數(shù)據(jù)模型、需求模型等。一般表達(dá)現(xiàn)有系統(tǒng)可采用物理模型,如表達(dá)現(xiàn)有工作流程可采用sfd,它不需要專(zhuān)用的建模工具,用office的word或visio就可畫(huà)sfd,并且sfd沒(méi)有專(zhuān)業(yè)的語(yǔ)法要求,其表達(dá)含義雙方都可理解,容易交流。7.經(jīng)濟(jì)可行性研究的內(nèi)容?答:1)一次性開(kāi)發(fā)費(fèi)用的估算:主要是硬件設(shè)備,人員工資,培訓(xùn),材料消耗;2)年運(yùn)行費(fèi)用估算:主要是維護(hù)人員,軟件硬件升級(jí),消耗品;3)效益的估算:經(jīng)濟(jì)效益與社會(huì)效益;8.可行性分析階段最終提交什么分析成果?答:最終要提交可行性研究報(bào)告:將可行性分析的結(jié)果寫(xiě)在報(bào)告里,這是立項(xiàng)的基礎(chǔ)文件;一旦

14、項(xiàng)目確立實(shí)施,項(xiàng)目組進(jìn)一步編制“項(xiàng)目計(jì)劃書(shū)”3.討論:?jiǎn)栴}定義和可行性研究之間的傳承關(guān)系參考:?jiǎn)栴}定義和可行性研究之間的傳承關(guān)系如同解決一個(gè)數(shù)學(xué)問(wèn)題一樣:l問(wèn)題定義是搞清軟件的性質(zhì)、規(guī)模、工期、投資等給定的約束條件。這相當(dāng)于給出一道文字描述的數(shù)學(xué)應(yīng)用題,解題前首先要清楚這是一個(gè)解決天文的、電磁學(xué)的、熱學(xué)的還是化學(xué)的等哪方面問(wèn)題?是離散的還是連續(xù)的?給定的條件有哪些?搞清問(wèn)題的邊界。l可行性分析相當(dāng)于找出解題的思路:首先看這個(gè)題是否在自己的解題能力范圍之內(nèi),根據(jù)自己的能力(基礎(chǔ)和經(jīng)驗(yàn))確定問(wèn)題是否可解,若問(wèn)題難度遠(yuǎn)遠(yuǎn)超過(guò)自己的能力,就不存在下一步。若可解,進(jìn)一步考慮解題的方案及模型。因此軟件可行

15、性分析,就是研究在現(xiàn)有掌控的技術(shù)和人力資源下,在限定的工期、經(jīng)費(fèi)條件下,是否做到所要求的功能和質(zhì)量要求。這就是教材中講述的“可行性研究是確定項(xiàng)目用最小代價(jià)在盡可能短的時(shí)間內(nèi)是否能夠開(kāi)發(fā),是否值得去開(kāi)發(fā)”。這也就是涉及到技術(shù)、經(jīng)濟(jì)和法律上的問(wèn)題。4.討論:技術(shù)可行性分析的業(yè)務(wù)模型有何作用?參考:在現(xiàn)代的軟件開(kāi)發(fā)中,業(yè)務(wù)建模越來(lái)越受到重視。但是在“軟件工程”的教材和教學(xué)中幾乎都忽略了這個(gè)過(guò)程。商業(yè)建模是針對(duì)整個(gè)企業(yè)或部分業(yè)務(wù)的組織結(jié)構(gòu)、工作流程、人員職責(zé)、基礎(chǔ)數(shù)據(jù)的全面描述。業(yè)務(wù)建模是分析要實(shí)行的軟件部分在企業(yè)中的地位、關(guān)系和功能,業(yè)務(wù)建模是“軟件模型”的上一個(gè)層面,是商務(wù)層面使用的模型,也是理解

16、和建立軟件“需求模型”的基礎(chǔ),它促使軟件模型邊界清晰、關(guān)系明確、需求完整。5.討論:計(jì)劃時(shí)期是基本軟件生命周期模型的第一個(gè)時(shí)期,請(qǐng)與rup模型的生命周期模型比較,進(jìn)一步理解rup中的“初始”和“細(xì)化”兩個(gè)工作階段;參考:軟件基本生命周期模型的“計(jì)劃時(shí)期”主要有“問(wèn)題定義”和“可行性研究”兩個(gè)活動(dòng),這兩個(gè)活動(dòng)對(duì)應(yīng)在rup模型的“初始階段”,無(wú)論用哪個(gè)模型這個(gè)階段都是要確定“軟件目標(biāo)”,搞清軟件“干什么”。至于軟件“怎么干”和“如何做出”軟件,在rup模型中就是“細(xì)化階段”,它對(duì)應(yīng)軟件基本生命周期模型中的“開(kāi)發(fā)時(shí)期”的分析和設(shè)計(jì)兩個(gè)活動(dòng),通過(guò)細(xì)化得到“軟件結(jié)構(gòu)”。但是rup的二維表達(dá)模型更為合理,

17、階段間的各種活動(dòng)不是戛然而止,而是延續(xù)、并行、交互,主次分明,充分體現(xiàn)重疊、迭代、里程牌等思想。6.討論:這個(gè)階段要做很多估算和計(jì)劃,比如規(guī)模估算、工期估算、成本估算等,你會(huì)做嗎?這說(shuō)明你還需要進(jìn)一步學(xué)習(xí)什么方面的知識(shí)?參考:這些技術(shù)將在軟件的項(xiàng)目管理中來(lái)學(xué)習(xí),在本書(shū)的第10章介紹。軟件工程知識(shí)體系的一個(gè)重要部分就是工程化管理,然而軟件工程的教育依然集中在技術(shù)方面,主要還是放在分析、設(shè)計(jì)、實(shí)現(xiàn)和維護(hù)的技術(shù)層面,而忽視管理方面的知識(shí)。管理知識(shí)是工科教育的短板,教學(xué)內(nèi)容少,學(xué)生對(duì)此學(xué)習(xí)也缺乏興趣。4.討論:rup表示的軟件生命周期與圖2-2的生命周期模型有何進(jìn)步?參考答案:l圖2-2是基本的生命周

18、期模型,分為計(jì)劃、開(kāi)發(fā)、維護(hù)三個(gè)時(shí)期,每個(gè)時(shí)期活動(dòng)的安排是順序、單一、非此即彼,屬于早期的“個(gè)體模型”,它不能反映團(tuán)隊(duì)開(kāi)發(fā)的真實(shí)狀況;lrup的生命周期模型,分為初始、細(xì)化、構(gòu)造、交付四個(gè)階段,每個(gè)階段活動(dòng)的安排是主次重疊、漸進(jìn)展開(kāi)、往復(fù)迭代,并且有基線和里程牌。因此,它能反映團(tuán)隊(duì)并行合作的工作狀況,因此可以更好地做好時(shí)間和資源規(guī)劃,更好地做好控制。1.需求分析與需求工程是什么關(guān)系?答:參見(jiàn)4.1.2節(jié)和圖4-4。從圖4-4中可知,需求分析只是需求工程所進(jìn)行的眾多活動(dòng)當(dāng)中的一項(xiàng)主要活動(dòng),它的活動(dòng)屬于技術(shù)層面。有的教材和課堂教學(xué)中只是提及“需求分析”,沒(méi)有從需求工程的角度去介紹需求分析。在當(dāng)代的

19、軟件工程中,應(yīng)當(dāng)建立完整的需求工程概念,而不僅僅是需求分析。當(dāng)今“需求管理”與“需求開(kāi)發(fā)”同樣重要,有關(guān)需求的變更管理、版本控制等應(yīng)用原理、技術(shù)和工具越來(lái)越受到重視,因?yàn)樗绕痖_(kāi)發(fā)初期的工作時(shí)間更長(zhǎng),難度更大。甲方考察軟件承制單位一項(xiàng)重要的能力成熟度內(nèi)容就是“需求管理”能力,而不僅僅是開(kāi)發(fā)能力。2.為什么必須進(jìn)行需求分析?答:參見(jiàn)4.1.1節(jié)。1)需求分析是進(jìn)入軟件開(kāi)發(fā)的第一步工作,萬(wàn)事開(kāi)頭難;2)需求分析是用戶與開(kāi)發(fā)者共同參與的結(jié)果,用戶與開(kāi)發(fā)者對(duì)需求達(dá)到理解一致所必須經(jīng)過(guò)的“磨合期”;3)需求分析的結(jié)果相當(dāng)于技術(shù)合同,開(kāi)發(fā)方以此提供功能,用戶以此驗(yàn)收;3.需求分析的目的和工作目標(biāo)是什么?1

20、)目的是:弄清用戶對(duì)系統(tǒng)的細(xì)節(jié)要求,完整、準(zhǔn)確、清晰、具體地回答目標(biāo)系統(tǒng)“做什么”。2)目標(biāo)是:是對(duì)用戶提出的軟件功能、性能等應(yīng)用問(wèn)題及其環(huán)境進(jìn)行分析與理解,采用一系列的分析方法和技術(shù),把系統(tǒng)可行性分析階段產(chǎn)生的系統(tǒng)規(guī)格說(shuō)明和項(xiàng)目規(guī)劃逐步精確化、完全化、一致化,借助于當(dāng)前系統(tǒng)的邏輯模型導(dǎo)出目標(biāo)系統(tǒng)邏輯模型,最終形成需求規(guī)格說(shuō)明文檔的過(guò)程。4.需求開(kāi)發(fā)經(jīng)過(guò)哪些步驟?每個(gè)步驟有何作用?答:通過(guò)4項(xiàng)具體活動(dòng)達(dá)目標(biāo):需求獲取、需求分析、編寫(xiě)文檔、需求驗(yàn)證。(1)需求獲取 即調(diào)查軟件需求,需求是用戶對(duì)目標(biāo)軟件系統(tǒng)在功能 性能 行為 設(shè)計(jì)約束等方面的期望。(2)需求分析 分析建模也稱(chēng)需求建模,建模是對(duì)現(xiàn)實(shí)

21、世界進(jìn)行抽象的過(guò)程;通過(guò)符號(hào)和文字說(shuō)明來(lái)描述系統(tǒng)模型,使用戶和開(kāi)發(fā)者之間建立共同的語(yǔ)言基礎(chǔ),消除理解歧義。(3)需求說(shuō)明 編寫(xiě)需求文檔,也稱(chēng)編寫(xiě)需求規(guī)格說(shuō)明書(shū),或稱(chēng)需求說(shuō)明 需求描述。 需求說(shuō)明書(shū)是需求階段的最終成果,也是需求分析階段復(fù)審的依據(jù);是用戶領(lǐng)域?qū)<?軟件分析師 軟件設(shè)計(jì)師共同交流的途徑和媒介;是交付給用戶文檔的一部分。(4)需求驗(yàn)證 即需求評(píng)審 。 根據(jù)需求說(shuō)明書(shū),分析師 設(shè)計(jì)師 客戶會(huì)審文檔,對(duì)需求的正確性 一致性 完整性 五二義性進(jìn)行評(píng)審 確認(rèn)。6.什么是需求模型?需求模型的承上啟下是什么意義?答:參見(jiàn)4.3.1節(jié)。需求模型:是根據(jù)用戶需求建立的目標(biāo)軟件的邏輯模型。需求模型起到

22、承上啟下的作用:l承上:面向用戶,指與領(lǐng)域?qū)<业臏贤?,反映用戶的需求。l啟下:面向設(shè)計(jì),指需求模型作為設(shè)計(jì)階段的輸入,反映系統(tǒng)要實(shí)現(xiàn)的功能。7.模型的表達(dá)有哪些形式?答:參見(jiàn)4.3.3節(jié)。需求建模有兩大方法:1)非形式化的方法,如用自然語(yǔ)言、半形式化語(yǔ)言、圖形符號(hào)、表格等方式對(duì)需求規(guī)格進(jìn)行描述;2)形式化的方法,采用嚴(yán)格的數(shù)學(xué)模型,這種方法目前常見(jiàn)的是z語(yǔ)言和petri網(wǎng)。8.需求分析和需求說(shuō)明的質(zhì)量要求有哪些?答:參見(jiàn)4.4.2節(jié)。需求分析和需求說(shuō)明要達(dá)到:l正確性;l無(wú)歧義性;l完整性;l一致性;l重要性/穩(wěn)定性分級(jí);l可驗(yàn)證性;l可修改性;l可追蹤性;1.理解應(yīng)用軟件開(kāi)發(fā)是一個(gè)從“抽象”

23、到“具體”的求精過(guò)程。答:參見(jiàn)5.1.2節(jié)和圖5-1。應(yīng)用軟件開(kāi)發(fā)就是將“客觀世界”表達(dá)在“計(jì)算機(jī)世界”里由“抽象”到“具體”的求精過(guò)程。軟件的最高級(jí)抽象用面向領(lǐng)域問(wèn)題的語(yǔ)言敘述“問(wèn)題”,通常就是用自然語(yǔ)言概括。具體化就是計(jì)算機(jī)語(yǔ)言編制的程序。軟件過(guò)程本身的每一步都是對(duì)較高一級(jí)抽象作一次具體化的處理,即利用不同的語(yǔ)言對(duì)模型進(jìn)行逐步細(xì)化,模型從“分析模型”到“設(shè)計(jì)模型”再到“編碼模型”。這三段模型對(duì)應(yīng)的是三種描述語(yǔ)言,分別是“自然語(yǔ)言”、“建模語(yǔ)言”和“計(jì)算機(jī)語(yǔ)言”。建模語(yǔ)言就是把自然語(yǔ)言轉(zhuǎn)換成計(jì)算機(jī)語(yǔ)言的過(guò)渡性語(yǔ)言。2.過(guò)程與數(shù)據(jù)的求精是怎樣逐步具體化的?答:參見(jiàn)5.1.3節(jié)。結(jié)構(gòu)化的精化過(guò)程

24、主要是針對(duì)過(guò)程和數(shù)據(jù)進(jìn)行:過(guò)程抽象:把用文字形成的功能描述演變成代碼。數(shù)據(jù)抽象:文字表達(dá)的數(shù)據(jù)結(jié)構(gòu)演變成數(shù)據(jù)庫(kù)表。3.軟件設(shè)計(jì)與需求分析有何關(guān)系?答:參見(jiàn)5.2.1節(jié)和圖5-3。軟件設(shè)計(jì)可看作將需求規(guī)格說(shuō)明逐步轉(zhuǎn)換為軟件源代碼的中間過(guò)渡過(guò)程?;顒?dòng)輸入:需求規(guī)格說(shuō)明書(shū);活動(dòng)輸出:設(shè)計(jì)規(guī)格說(shuō)明書(shū);活動(dòng)目標(biāo):需求模型轉(zhuǎn)換成設(shè)計(jì)模型;活動(dòng)過(guò)程:層層分解,逐步求精;4.軟件設(shè)計(jì)的任務(wù)和工作目標(biāo)是什么?答:參見(jiàn)5.2.2節(jié)。目標(biāo):將需求模型細(xì)化成設(shè)計(jì)模型,形成“設(shè)計(jì)規(guī)格說(shuō)明書(shū)”。任務(wù):總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)。概要設(shè)計(jì)是根據(jù)需求確定軟件和數(shù)據(jù)的總體框架,詳細(xì)設(shè)計(jì)是將其進(jìn)一步精化成軟件的算法表示和數(shù)據(jù)結(jié)構(gòu)。5.概

25、要設(shè)計(jì)中的體系結(jié)構(gòu)設(shè)計(jì)與領(lǐng)域問(wèn)題結(jié)構(gòu)設(shè)計(jì)有什么區(qū)別?答:參見(jiàn)5.2.2節(jié)。概要設(shè)計(jì)也稱(chēng)總體設(shè)計(jì)即為結(jié)構(gòu)設(shè)計(jì)。要完成兩大結(jié)構(gòu):l體系結(jié)構(gòu):軟件總體架構(gòu)、運(yùn)行環(huán)境的設(shè)計(jì)。如同建筑結(jié)構(gòu)中的基礎(chǔ)結(jié)構(gòu)、主體梁柱、空間分層、房間布局、通道布置、水電基礎(chǔ)設(shè)施等設(shè)計(jì),是優(yōu)先考慮的設(shè)計(jì)。當(dāng)然不同的需求所采用的體系結(jié)構(gòu)不同,如民居和賓館、廠房和商場(chǎng)、學(xué)校和火車(chē)站等都是不同的建筑體系。桌面軟件、web軟件、嵌入式軟件等等到具有不同的軟件體系;l領(lǐng)域結(jié)構(gòu);是滿足需求的軟件功能設(shè)計(jì),是對(duì)分析結(jié)果進(jìn)行細(xì)化,劃分出軟件的模塊結(jié)構(gòu)及確定模塊之間的關(guān)系。領(lǐng)域結(jié)構(gòu)的劃分是基于體系結(jié)構(gòu)框架內(nèi)的設(shè)計(jì)。比如按“學(xué)?!苯ㄖw系設(shè)計(jì)好之后

26、,才能夠進(jìn)一步按課堂教學(xué)、實(shí)驗(yàn)教學(xué)、院系等模塊結(jié)構(gòu)設(shè)計(jì)每層、每個(gè)房間的結(jié)構(gòu)和功能。如果按火車(chē)站體系安排學(xué)校的功能,其效果可想而知。6.什么是模塊、模塊化?軟件設(shè)計(jì)為什么要模塊化?答:參見(jiàn)5.3.1和5.3.2節(jié)。1)模塊:是完成特定功能的程序?qū)嶓w。模塊是構(gòu)成程序的基本構(gòu)件。2)模塊化:指解決一個(gè)復(fù)雜問(wèn)題時(shí)自頂向下逐層分解成若干模塊的過(guò)程。每個(gè)模塊完成一個(gè)特定的子功能,所有模塊按系統(tǒng)結(jié)構(gòu)組裝起來(lái),完成整個(gè)系統(tǒng)所要求的功能。3)模塊化設(shè)計(jì)將問(wèn)題簡(jiǎn)化,劃分模塊可使每一個(gè)模塊完成單一功能;可以獨(dú)立地進(jìn)行模塊的編碼測(cè)試,便于軟件開(kāi)發(fā)工作的組織;把每一個(gè)模塊要解決的問(wèn)題局限在有限的范圍,減少出錯(cuò)機(jī)會(huì);便于

27、糾錯(cuò);便于對(duì)特定的模塊進(jìn)行優(yōu)化處理;一個(gè)模塊可被重復(fù)使用,提高軟件產(chǎn)品的復(fù)用率;程序易于理解;利于估計(jì)工作量和開(kāi)發(fā)成本。7.模塊的信息為什么要隱藏?答:參見(jiàn)5.3.3節(jié)。信息隱藏就是模塊內(nèi)部的信息私有化,減少模塊間的耦合。有利于并行開(kāi)發(fā)、獨(dú)立測(cè)試、模塊復(fù)用、功能擴(kuò)展和維護(hù)。8.用什么衡量模塊是否是獨(dú)立的,如何區(qū)分模塊獨(dú)立的程度?答:參見(jiàn)5.3.4節(jié)。采用內(nèi)聚度、耦合度衡量模塊的獨(dú)立性:l內(nèi)聚度:模塊內(nèi)部各個(gè)元素間(語(yǔ)句和程序段)的緊密程度,模塊的內(nèi)部特征。l耦合度:模塊之間相互聯(lián)系緊密的程度,模塊的外部特征。在內(nèi)外兩個(gè)特征上,模塊的獨(dú)立程度以外部特征(耦合度)為主要特征。耦合度的分級(jí)見(jiàn)表5-2

28、。9.為什么要進(jìn)行模塊優(yōu)化?模塊優(yōu)化有哪些概念?答:參見(jiàn)5.3.5節(jié)。模塊優(yōu)化的這些概念起源于結(jié)構(gòu)化設(shè)計(jì),但對(duì)面向?qū)ο笤O(shè)計(jì)仍有指導(dǎo)意義。從分析模型到設(shè)計(jì)模型要經(jīng)過(guò)映射,把功能表達(dá)要映射成軟件的結(jié)構(gòu),初始的結(jié)構(gòu)劃分不一定完善,模塊優(yōu)化就是對(duì)初始結(jié)構(gòu)的劃分做一些調(diào)整。主要的概念有:1)模塊的作用域與控制域l模塊的作用域:受該模塊內(nèi)一個(gè)判定影響的所有模塊的集合(從功能方面考慮);l模塊的控制域:包括它自己及其所有下屬模塊的集合(從結(jié)構(gòu)方面考慮)。優(yōu)化原則是:模塊的作用域應(yīng)在控制域之內(nèi)。2)深度/寬度與扇入/扇出l一個(gè)軟件結(jié)構(gòu)的深度(depth)表示控制的層數(shù);l一個(gè)軟件結(jié)構(gòu)的寬度(width)表示控

29、制的跨度;l一個(gè)模塊的“扇出數(shù)”(fanout)指該模塊直接控制的其他模塊數(shù)(依賴性);l一個(gè)模塊的“扇入數(shù)”(fanin)指能直接控制該模塊的上級(jí)模塊數(shù)(復(fù)用性);優(yōu)化原則是:寬度和深度適中,扇入和扇出要適當(dāng)。3)模塊要單入口單出口、大小要適中,盡量松耦合。1.什么是軟件結(jié)構(gòu)化?答:參見(jiàn)6.1節(jié)。軟件結(jié)構(gòu)化是以程序模塊化為基礎(chǔ)建立起來(lái)的軟件機(jī)體,結(jié)構(gòu)的基本單元是模塊,模塊的相互作用實(shí)現(xiàn)功能,模塊的組合構(gòu)成系統(tǒng)。結(jié)構(gòu)化開(kāi)發(fā)是一種軟件開(kāi)發(fā)方法學(xué),它是從分析、設(shè)計(jì)及實(shí)現(xiàn)的軟件生命周期遵循結(jié)構(gòu)化思想。結(jié)構(gòu)化的核心思想是對(duì)領(lǐng)域問(wèn)題模塊化,模塊具有獨(dú)立性,采用自定向下、逐層分解、層層細(xì)化的開(kāi)發(fā)過(guò)程。2.

30、結(jié)構(gòu)化開(kāi)發(fā)有哪兩種方法?通常所說(shuō)的結(jié)構(gòu)化指的是哪一個(gè)?答:結(jié)構(gòu)化開(kāi)發(fā)方法有:面向數(shù)據(jù)結(jié)構(gòu)的方法和面向數(shù)據(jù)流的方法。通常介紹的結(jié)構(gòu)化方法是面向數(shù)據(jù)流的方法。3.結(jié)構(gòu)化分析的需求模型由哪三部分組成?答:參見(jiàn)6.2節(jié)。結(jié)構(gòu)化建立的需求模型由功能模型、數(shù)據(jù)模型和行為模型組成。4.數(shù)據(jù)流圖dfd用來(lái)做什么?數(shù)據(jù)字典dd做什么?dfd+dd是表達(dá)什么?答:參見(jiàn)6.2.1節(jié)和6.2.4節(jié)。dfd+dd是表達(dá)系統(tǒng)的功能模型。數(shù)據(jù)流圖dfd采用數(shù)據(jù)被加工的流向來(lái)描述系統(tǒng)功能;而數(shù)據(jù)字典dd是對(duì)dfd圖的補(bǔ)充說(shuō)明:說(shuō)明數(shù)據(jù)流和數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu);說(shuō)明數(shù)據(jù)加工的邏輯。5.畫(huà)dfd分析法有哪三條基本原則?答:參見(jiàn)6.

31、2.2節(jié)?;跀?shù)據(jù)流技術(shù)的分析思想,遵循三條基本原則:抽象、分解、投影。1)問(wèn)題抽象:歸納復(fù)雜現(xiàn)象達(dá)到高度聚類(lèi)。2)問(wèn)題分解:分解能降低問(wèn)題的復(fù)雜程度。3)多視角分析:即事物的投影,從不同側(cè)面對(duì)問(wèn)題全面理解。6.一個(gè)復(fù)雜系統(tǒng)的dfd采用什么做法進(jìn)行細(xì)化?答:參見(jiàn)圖6-2和6.2.3節(jié)。數(shù)據(jù)流圖采用分層繪制,貫徹自頂向下、逐層分解、層層細(xì)化的分析理念。頂層數(shù)據(jù)流圖(系統(tǒng)級(jí)抽象層);零層數(shù)據(jù)流圖(功能模塊級(jí)抽象層);各子層數(shù)據(jù)流圖(子功能模塊抽象層);7.在設(shè)計(jì)時(shí)dfd被映射成什么?答:參見(jiàn)和6.3節(jié)和圖6-4。從需求分析得到的功能模型(ded+dd)、數(shù)據(jù)模型(dd +e_r)和行為模型(std

32、)三大模型映射成兩大設(shè)計(jì):總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)??傮w設(shè)計(jì)任務(wù)之一是“系統(tǒng)結(jié)構(gòu)設(shè)計(jì)”,它是把分析模型dfd圖映射得到的軟件模塊結(jié)構(gòu),即把系統(tǒng)的功能需求轉(zhuǎn)換成軟件結(jié)構(gòu),形成軟件模塊結(jié)構(gòu)圖。見(jiàn)圖6-5的示意。8.dfd有哪兩種映射類(lèi)型?答:參見(jiàn)6.3.3節(jié)和圖6-7。任意復(fù)雜的dfd都可以劃分成兩種類(lèi)型的dfd,一種是變換型,一種是事務(wù)性。然后按映射規(guī)則映射出軟件結(jié)構(gòu)sc圖。sc圖表達(dá)了模塊之間的調(diào)用關(guān)系,也就是形成了領(lǐng)域問(wèn)題的軟件結(jié)構(gòu)。1什么是對(duì)象?對(duì)象有哪些本源特征?怎樣理解對(duì)象的每個(gè)本源性?答:對(duì)象就是客觀世界存在的實(shí)體,就是客觀事物object。對(duì)象的本源性是指客觀萬(wàn)物的存在的共有特征:整體性

33、、關(guān)聯(lián)性、交互性、繼承性、多態(tài)性。l整體性:客觀事物都具有屬性和行為,屬性和行為是事物的整體性,有時(shí)兩者合起來(lái)才能反映事物之間的區(qū)別。l關(guān)聯(lián)性:客觀事物都不是孤立存在的,關(guān)聯(lián)性表達(dá)客觀事物的社會(huì)性、共存性、組織性,是靜態(tài)的結(jié)構(gòu)描述,。l交互性:對(duì)象生存環(huán)境的依賴性。萬(wàn)物之間相互依存的另一個(gè)體現(xiàn)就是交互。object交互才保持整個(gè)客觀世界機(jī)體運(yùn)作的活力,才能生存和進(jìn)化。l繼承性:object具有血緣關(guān)系,有家族譜,而且去腐生新,不斷進(jìn)化。l多態(tài)性:對(duì)象在不同的條件下,同樣的行為會(huì)表現(xiàn)不同的效果。注意一個(gè)重要概念:通常介紹面向?qū)ο缶哂谐橄笮浴⒎庋b性、繼承性、多態(tài)性和消息機(jī)制這五個(gè)特性,其中抽象性、

34、封裝性并非對(duì)象的本源性。對(duì)象與面向?qū)ο笫莾蓚€(gè)概念。抽象性與封裝性是面向?qū)ο蟮娜祟?lèi)活動(dòng)。見(jiàn)下面的問(wèn)題2。2什么是面向?qū)ο??面向?qū)ο笥惺裁刺攸c(diǎn)?答:面向?qū)ο螅╫bject oriented):是人類(lèi)的活動(dòng),是人類(lèi)認(rèn)知、觀察客觀事物的方法論。面向?qū)ο筇攸c(diǎn)是:面向客觀存在,面向事物的本源性。它能容易地、真實(shí)地表達(dá)客觀問(wèn)題并映射到計(jì)算機(jī)世界。3與面向結(jié)構(gòu)化開(kāi)發(fā)過(guò)程相比,為什么面向?qū)ο竽芨鎸?shí)地反映客觀世界?答:結(jié)構(gòu)化也就是面向過(guò)程的方法:從客觀事物的行為出發(fā),肢解客觀事物的整體性,從分析、設(shè)計(jì)到編程完全看不出事物的原貌;面向?qū)ο螅簭挠^察、抽象客觀事物開(kāi)始,就以事物原貌、事物的整體為出發(fā)點(diǎn)。從分析、設(shè)計(jì)、

35、編程一直反映事物的原貌,它利用事物具有整體性、關(guān)聯(lián)性、交互性、繼承性和多態(tài)性的本源特征映射領(lǐng)域問(wèn)題到計(jì)算機(jī)世界中。4面向?qū)ο蟮臄?shù)據(jù)訪問(wèn)與直接面向數(shù)據(jù)的訪問(wèn)有何區(qū)別?答:參見(jiàn)7.1.3節(jié)和7.4.5節(jié)內(nèi)容面向?qū)ο蟮臄?shù)據(jù)訪問(wèn)是操作實(shí)體對(duì)象,實(shí)體對(duì)象是占用計(jì)算機(jī)內(nèi)存中的資源,是臨時(shí)狀態(tài),對(duì)象經(jīng)持久化后才得以永久性保存。將對(duì)象持久化保存到關(guān)系數(shù)據(jù)庫(kù)是一種選擇方案,并且是目前應(yīng)用最廣泛的實(shí)現(xiàn)方案。它與面向數(shù)據(jù)訪問(wèn)的區(qū)別是:數(shù)據(jù)訪問(wèn)是直接利用sql語(yǔ)句操作關(guān)系數(shù)據(jù)庫(kù)中的數(shù)據(jù);而面向?qū)ο蟛⒎侨绱?,?duì)象與數(shù)據(jù)源之間有一個(gè)隔離層,也稱(chēng)or映射層或數(shù)據(jù)管理層,正是這層的作用,使對(duì)象層和資源層分離開(kāi)發(fā)和維護(hù)。5uml是什么?在軟件開(kāi)發(fā)過(guò)程中有何作用?答:uml是用于面向?qū)ο蠓椒ㄟM(jìn)行分析和設(shè)計(jì)的建模語(yǔ)言,統(tǒng)一是指對(duì)以前不同的建模符號(hào)和方法存在的差異性進(jìn)行統(tǒng)一。建模語(yǔ)言就是設(shè)計(jì)語(yǔ)言,是從自然語(yǔ)言到計(jì)算機(jī)語(yǔ)言的中間的過(guò)渡性語(yǔ)言,它提供表達(dá)設(shè)計(jì)語(yǔ)義的語(yǔ)法或圖形符號(hào),用它來(lái)建立軟件的模型。6在軟件模型當(dāng)中如何表達(dá)對(duì)象的整體性、關(guān)聯(lián)性、交互性、繼承性、多態(tài)性?答:參見(jiàn)7.2.5節(jié)n整體性:通過(guò)面向?qū)ο蟮姆庋bclass形式來(lái)體現(xiàn);n關(guān)聯(lián)性:指一般關(guān)系和組成關(guān)系:一般關(guān)系指主次關(guān)系、擁有關(guān)系、數(shù)量關(guān)系;整體部分關(guān)系是

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論