軟件工程概論_第1頁(yè)
軟件工程概論_第2頁(yè)
軟件工程概論_第3頁(yè)
軟件工程概論_第4頁(yè)
軟件工程概論_第5頁(yè)
已閱讀5頁(yè),還剩4頁(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)介

精選優(yōu)質(zhì)文檔-----傾情為你奉上精選優(yōu)質(zhì)文檔-----傾情為你奉上專心---專注---專業(yè)專心---專注---專業(yè)精選優(yōu)質(zhì)文檔-----傾情為你奉上專心---專注---專業(yè)第13章軟件重用技術(shù)13.1典型問(wèn)題分析和解答【例1】實(shí)施軟件重用的目的是要使軟件開(kāi)發(fā)工作進(jìn)行得(A)。軟件重用的實(shí)際效益除了(B)之外,在企業(yè)的經(jīng)營(yíng)管理方面也渴望達(dá)到理想的效益。新的應(yīng)用軟件開(kāi)發(fā)技術(shù)和工具是以(C)作為關(guān)鍵,重用大粒度的(D),為的是快速開(kāi)發(fā)應(yīng)用軟件。這些新技術(shù)包括微軟的(E)、(F)、(G),SUN公司的Java,OMG公司的CORBA、IDL等。供選擇的答案:A.①更簡(jiǎn)捷 ②更方便 ③更快、更好、更省 ④更豐富B.①重用率 ②功能擴(kuò)充 ③效率 ④空間利用率C,D.①軟件 ②固件 ③構(gòu)件 ④屬性⑤對(duì)象 ⑥事物 ⑦數(shù)據(jù) ⑧代碼EG.①office ②VisualBasic ③ActiveX ④Photoshop⑤OLE ⑥Fortran ⑦COBOL ⑧Delphi 答案:A.③,B.①,C.③,D.⑤,E.②,F.③,G.⑤。其中,E、F、G的答案順序可互換。分析:實(shí)施軟件重用的目的是要使軟件開(kāi)發(fā)工作進(jìn)行得是更快、更好、更省?!案臁笔侵冈谑袌?chǎng)競(jìng)爭(zhēng)環(huán)境中,軟件開(kāi)發(fā)工作能滿足市場(chǎng)上時(shí)間方面的要求(即在提供軟件產(chǎn)品的時(shí)間方面能賽過(guò)競(jìng)爭(zhēng)對(duì)手);“更好”是指開(kāi)發(fā)出來(lái)的軟件在未來(lái)的運(yùn)行中失效可能性??;“更省”是指在開(kāi)發(fā)和維護(hù)期間所花費(fèi)的開(kāi)銷少。日美一些大公司的資料表明,軟件重用率最高可望達(dá)到90%,而且軟件重用使得企業(yè)在及時(shí)滿足市場(chǎng)、軟件質(zhì)量、軟件開(kāi)發(fā)和維護(hù)費(fèi)用等方面都得到顯著的改進(jìn)。除了重用率之外,在企業(yè)的經(jīng)營(yíng)管理方面也可望達(dá)到理想的效益。例如,上市時(shí)間可縮短25倍;軟件產(chǎn)品的缺陷密度可減少510倍;軟件產(chǎn)品的維護(hù)費(fèi)用可減少510倍;軟件開(kāi)發(fā)總費(fèi)用可減少15%75%,其中,75%是針對(duì)長(zhǎng)期項(xiàng)目,包括開(kāi)發(fā)可重用構(gòu)件及支持重用的負(fù)擔(dān)。新的應(yīng)用軟件開(kāi)發(fā)技術(shù)和工具是以“構(gòu)件”作為關(guān)鍵,重用大粒度的“對(duì)象”,為的是快速開(kāi)發(fā)應(yīng)用軟件。這些新技術(shù)包括微軟的VisualBasic、ActiveX、OLE(對(duì)象鏈接與嵌入),SUN公司的Java,OMG公司的CORBA(公用對(duì)象請(qǐng)求代理程序體系結(jié)構(gòu))、IDL(接口定義語(yǔ)言)等。非面向?qū)ο笳Z(yǔ)言(如COBOL和Fortran)在重用實(shí)踐中已經(jīng)相當(dāng)?shù)某晒?。這些非面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言構(gòu)件技術(shù)的成功實(shí)踐說(shuō)明了實(shí)現(xiàn)軟件重用并不限于面向?qū)ο笳Z(yǔ)言構(gòu)件或類庫(kù)?!纠?】以往的軟件工程技術(shù)不能滿足重用的需要,體現(xiàn)在工程、(A)、(B)、經(jīng)營(yíng)業(yè)務(wù)等4個(gè)方面。“工程”指軟件開(kāi)發(fā)工程,表現(xiàn)在缺乏(C)手段,缺乏(D)構(gòu)件,缺乏對(duì)潛在可重用的(E),缺乏實(shí)施重用的工具。供選擇的答案:A,B.①需求 ②過(guò)程 ③環(huán)境 ④組織管理CE.①重用 ②可靠性 ③靈活性 ④界定⑤工具 ⑥互連性答案:A.②,B.④,C.④,D.①,E.③。其中,A、B的答案的順序可互換。分析:以往的軟件工程技術(shù)不能滿足重用的需要,體現(xiàn)在工程、過(guò)程、組織管理、經(jīng)營(yíng)業(yè)務(wù)等4個(gè)方面。這里所說(shuō)的“工程”是指軟件開(kāi)發(fā)工程,其技術(shù)和方法面對(duì)重用的需要已顯得低效,主要表現(xiàn)在:缺乏界定手段:為了軟件重用,需要循軟件開(kāi)發(fā)流程的各個(gè)階段,通過(guò)分析它們的描述模型,明確界定出潛在可重用的部分,被界定出的部分,可能是可被重用的部分,也可能是可被可重用構(gòu)件代用的部分。而以往的軟件工程缺乏這種界定手段。缺乏可重用的構(gòu)件:這反映在許多方面。例如,不能有效地挑選出可重用構(gòu)件并對(duì)它們進(jìn)行強(qiáng)化;缺乏對(duì)構(gòu)件打包、文檔化、分類、界定的技術(shù);缺乏有效方法進(jìn)行(構(gòu)件)庫(kù)的設(shè)計(jì)和實(shí)現(xiàn);缺乏良好的構(gòu)件庫(kù)存取方法。缺乏對(duì)潛在可重用構(gòu)件的靈活性:如果一個(gè)構(gòu)件很死板,那么它被重用的機(jī)會(huì)就很少。而過(guò)去的軟件工程方法在設(shè)計(jì)靈活的、分層的軟件體系結(jié)構(gòu)方面一直沒(méi)有成熟的辦法。過(guò)去的方法是對(duì)構(gòu)件進(jìn)行調(diào)節(jié)使之滿足新的需求,或者使對(duì)新的體系結(jié)構(gòu)進(jìn)行限制。缺乏實(shí)施重用的工具:為了實(shí)施重用,需要一系列新的工具,并把它們集成到面向重用的軟件工程環(huán)境中去。而過(guò)去的工程缺乏這方面的工具?!纠?】論域工程過(guò)程要在選定的應(yīng)用論域中界定出(A)和(B),要為多個(gè)應(yīng)用和構(gòu)件定義一個(gè)(C),并開(kāi)發(fā)一系列可適度擴(kuò)展的(D)。創(chuàng)建可重用構(gòu)件既困難又昂貴。所以,應(yīng)當(dāng)幫助軟件人員進(jìn)行界定工作,以及按重要性對(duì)各項(xiàng)(E)進(jìn)行優(yōu)先性排隊(duì)。在一定程度上,這項(xiàng)工作要依賴于(F)。供選擇的答案:A,B,E,F:①共性 ②特性 ③可變性 ④屬性⑤靈活性 ⑥可靠性 ⑦健壯性 ⑧適用性C,D:①固件 ②構(gòu)件 ③體系結(jié)構(gòu) ④組件⑤總體框圖 ⑥數(shù)據(jù)結(jié)構(gòu)答案:A.①,B.③,C.③,D.②,E.②,F.⑥。其中,A、B的答案順序可互換。分析:論域工程過(guò)程要在選定的應(yīng)用論域中界定出共性和可變性,要為多個(gè)應(yīng)用和構(gòu)件定義一個(gè)體系結(jié)構(gòu),并開(kāi)發(fā)一系列可適度擴(kuò)展的構(gòu)件。創(chuàng)建可重用構(gòu)件既困難又昂貴。所以,應(yīng)當(dāng)幫助軟件人員進(jìn)行界定工作,以及按重要性對(duì)各項(xiàng)“特性”進(jìn)行優(yōu)先性排隊(duì)。在一定程度上,這項(xiàng)工作要依賴于預(yù)測(cè)的可靠性(預(yù)測(cè)需要哪些應(yīng)用層的可靠性和構(gòu)件層的可靠性),這也關(guān)系到我們要冒多大的風(fēng)險(xiǎn)。【例4】軟件體系設(shè)計(jì)的一個(gè)中心問(wèn)題是能否(A),以及采用何種軟件體系結(jié)構(gòu)風(fēng)格。有原則地使用體系結(jié)構(gòu)風(fēng)格可帶來(lái)一些實(shí)際的好處:(1)它促進(jìn)了對(duì)設(shè)計(jì)的(B);(2)它可以帶來(lái)顯著的(C)(體系結(jié)構(gòu)風(fēng)格的不變部分使它們可以共享同一個(gè)實(shí)現(xiàn)代碼);(3)只要系統(tǒng)是使用常用的、規(guī)范的方法組織起來(lái)的,就可以讓其它設(shè)計(jì)者很容易地理解軟件的體系結(jié)構(gòu);(4)對(duì)標(biāo)準(zhǔn)或規(guī)范風(fēng)格的使用也支持了(D),例如像CORBA這樣的面向?qū)ο蟮募軜?gòu)和基于事件機(jī)制的工具的集成;(5)在限制了設(shè)計(jì)空間的情況下體系結(jié)構(gòu)風(fēng)格通常允許進(jìn)行特殊的與風(fēng)格有關(guān)的分析;(6)通??梢詫?duì)特定的風(fēng)格提供(E)手段。供選擇的答案:AC. ①使用特定的體系模式 ②使用重復(fù)的體系模式③重用 ④專用 ⑤代碼重用 ⑥結(jié)構(gòu)重用DE. ①可視化 ②構(gòu)件 ③互操作性 ④可移植性⑤可調(diào)度性 ⑥框架答案:A.②,B.③,C.⑤,D.③,E.①。分析:軟件體系設(shè)計(jì)的一個(gè)中心問(wèn)題是能否使用重復(fù)的體系模式,以及采用何種軟件體系結(jié)構(gòu)風(fēng)格。例如可以采用通用的基于層次或數(shù)據(jù)流的系統(tǒng)體系結(jié)構(gòu),或者采用特殊的系統(tǒng)組織(如經(jīng)典的編譯器分解方式),OSI七層協(xié)議,MVC用戶界面語(yǔ)義圖等。有原則地使用體系結(jié)構(gòu)風(fēng)格可帶來(lái)一系列實(shí)際的好處。(1)它促進(jìn)了對(duì)設(shè)計(jì)的重用。一些經(jīng)過(guò)實(shí)踐證實(shí)的解決方案可以拿來(lái)可靠地解決新問(wèn)題。(2)它可以帶來(lái)顯著的代碼重用。體系結(jié)構(gòu)風(fēng)格的不變部分使它們可以共享同一個(gè)實(shí)現(xiàn)代碼。(3)只要系統(tǒng)是使用常用的、規(guī)范的方法組織起來(lái)的,就可以讓其它設(shè)計(jì)者很容易地理解軟件的體系結(jié)構(gòu)。例如,如果某人把系統(tǒng)描述為“客戶機(jī)∕服務(wù)器”模式,則不必給出細(xì)節(jié),人們立刻就會(huì)明白它們是如何一部分一部分地組織起來(lái),并在腦海中清晰地得到這個(gè)圖像。(4)對(duì)標(biāo)準(zhǔn)或規(guī)范風(fēng)格的使用也支持了互操作性,例如像CORBA這樣的面向?qū)ο蟮募軜?gòu)和基于事件機(jī)制的工具的集成;(5)在限制了設(shè)計(jì)空間的情況下,體系結(jié)構(gòu)風(fēng)格通常允許進(jìn)行特殊的與風(fēng)格有關(guān)的分析。例如,分析管道過(guò)濾器系統(tǒng)的可調(diào)度性(吞吐量、延時(shí)、死鎖的解決)是可行的,但對(duì)于任意的、或用其它方法構(gòu)造的架構(gòu)來(lái)說(shuō),這種分析可能毫無(wú)意義。(6)通??梢詫?duì)特定的風(fēng)格提供可視化的手段。例如,可以對(duì)與客戶的專業(yè)領(lǐng)域有關(guān)的設(shè)計(jì)作出圖解或文字說(shuō)明。對(duì)于應(yīng)用軟件體系結(jié)構(gòu)風(fēng)格來(lái)說(shuō),由于視點(diǎn)的不同,軟件人員有很大的選擇空間。要為系統(tǒng)選擇或設(shè)計(jì)某一個(gè)體系結(jié)構(gòu)風(fēng)格,必須根據(jù)特定項(xiàng)目的具體特點(diǎn),進(jìn)行分析比較后再確定。體系結(jié)構(gòu)風(fēng)格的使用幾乎完全是特化的?!纠?】分層系統(tǒng)采用層次化的組織方法,每一層向其(A)提供服務(wù),并利用(B)的服務(wù)。在一些分層系統(tǒng)中,(C)全部被隱藏起來(lái),只有(D)和一部分精心選擇的功能可以被系統(tǒng)外部看到。在這種系統(tǒng)中,(E)是實(shí)現(xiàn)在層次結(jié)構(gòu)中的一些虛擬機(jī),(F)是層次與層次之間交互的協(xié)議,(G)包括對(duì)層次之間交互的限制。分層系統(tǒng)中有許多可取的屬性。首先,它支持(H)的系統(tǒng)設(shè)計(jì),這使得設(shè)計(jì)者可以把一個(gè)復(fù)雜的系統(tǒng)按遞增的步驟分解開(kāi)來(lái);其次,它支持(I),像管道結(jié)構(gòu)的系統(tǒng)一樣,因?yàn)槊恳粚又炼嗪拖噜彽纳舷聦咏换ィ虼?,功能的改變最多只影響相鄰的上下層。另外,它能支?J),和抽象數(shù)據(jù)類型一樣,只要提供的服務(wù)接口定義不變,同一層的不同實(shí)現(xiàn)可以交換使用。供選擇的答案:AD. ①下層 ②內(nèi)部層次 ③外部層次 ④上層 ⑤中間件 ⑥接口EG. ①接口定義 ②軟件部件 ③連接 ④拓?fù)浼s束⑤規(guī)范定義 ⑥推理機(jī)制 ⑦系統(tǒng)結(jié)構(gòu)HJ. ①基于抽象程度遞增 ②基于具體細(xì)節(jié)遞增 ③重用 ④可視化 ⑤互操作 ⑥功能增強(qiáng)⑦效率提高 ⑧結(jié)構(gòu)化答案:A.④,B.①,C.②,D.③,E.②,F.③,G.④,H.①,I.⑥,J.③。分析:對(duì)于分層系統(tǒng):過(guò)程調(diào)用用戶有用的系統(tǒng)基本工具內(nèi)核 (1)基本結(jié)構(gòu):分層系統(tǒng)采用層次化的組織方法,每一層向其上層提供服務(wù),并利用其下層的服務(wù)。在一些分層系統(tǒng)中,內(nèi)部層次全部被隱藏起來(lái),只有外部層次及一部分精心選擇的功能可以被系統(tǒng)外部所見(jiàn)。在這種系統(tǒng)中,軟件部件是實(shí)現(xiàn)在層次結(jié)構(gòu)中的一些虛擬機(jī),連接是層次與層次之間交互的協(xié)議,拓?fù)浼s束包括對(duì)層次之間交互的限制。如圖所示。過(guò)程調(diào)用用戶有用的系統(tǒng)基本工具內(nèi)核不同元素組合 (2)應(yīng)用:這種系統(tǒng)最廣泛的應(yīng)用是分層通信協(xié)議。在這一應(yīng)用論域中,每一層提供一級(jí)抽象的功能,作為上層通信的基礎(chǔ)。較低的層次定義低層的交互,最低層通常只定義硬件物理連接。其它應(yīng)用論域有數(shù)據(jù)庫(kù)系統(tǒng)、操作系統(tǒng)等。不同元素組合 (3)分層系統(tǒng)中有許多可取的屬性。首先,它支持基于抽象程度遞增的系統(tǒng)設(shè)計(jì),這使得設(shè)計(jì)者可以把一個(gè)復(fù)雜的系統(tǒng)按遞增的步驟分解開(kāi)來(lái);其次,它支持功能增強(qiáng),像管道結(jié)構(gòu)的系統(tǒng)一樣,因?yàn)槊恳粚又炼嗪拖噜彽纳舷聦咏换ィ虼?,功能的改變最多只影響相鄰的上下層。另外,它能支持重用,和抽象?shù)據(jù)類型一樣,只要提供的服務(wù)接口定義不變,同一層的不同實(shí)現(xiàn)可以交換使用。這樣,就可以定義一組標(biāo)準(zhǔn)的接口,并允許有各種不同的實(shí)現(xiàn)方法(典型的例子是ISOOSI參考模型和某些Windows的系統(tǒng)協(xié)議)?!纠?】軟件重用可分為以下三個(gè)層次:(A),例如軟件工程知識(shí)的重用。(B),例如面向?qū)ο蠓椒ɑ驀?guó)家制定的軟件開(kāi)發(fā)規(guī)范的重用。軟件成分的重用。軟件成分的重用又可進(jìn)一步劃分為(C),如剪貼;(D),如重用設(shè)計(jì)模型;(E),更高級(jí)別重用。為了研究軟件重用程度與軟件生產(chǎn)率之間的關(guān)系,我們引進(jìn):生產(chǎn)率P=(F)和重用率R=(G)的公式,以及兩者之間的關(guān)系P=(H)。其中,用Lt代表程序總長(zhǎng)度,Ln和Lr分別為新編代碼和重用代碼的長(zhǎng)度。令Et、En和Er分別代表開(kāi)發(fā)該程序的總工作量、新編程序的工作量和重用已有軟件構(gòu)件的工作量,Cn和Cr分別代表開(kāi)發(fā)新代碼和重用已有軟件構(gòu)件的生產(chǎn)率。供選擇的答案:AE. ①知識(shí)重用 ②分析結(jié)果重用 ③代碼重用 ④方法與標(biāo)準(zhǔn)重用 ⑤設(shè)計(jì)結(jié)果重用 ⑥軟件成分重用FH. ① ② ③ ④ ⑤ ⑥⑦答案:A.①,B.④,C.③,D.⑤,E.②,F.④,G.②,H.③。分析:廣義來(lái)講,軟件重用可分為以下三個(gè)層次: (1)知識(shí)重用(如軟件工程知識(shí)的重用); (2)方法和標(biāo)準(zhǔn)的重用(如面向?qū)ο蠓椒ɑ驀?guó)家制定的軟件開(kāi)發(fā)規(guī)范的重用); (3)軟件成分的重用。軟件成分的重用又可進(jìn)一步劃分為三個(gè)級(jí)別:①代碼重用(源代碼剪貼、源代碼包含、繼承);②設(shè)計(jì)結(jié)果重用;③分析結(jié)果重用(這是一種更高級(jí)別的重用,即重用某個(gè)系統(tǒng)的分析模型)。為實(shí)現(xiàn)軟件重用需要付出額外代價(jià),如投資、時(shí)間和可重用構(gòu)件庫(kù)。即使不考慮上述的額外代價(jià),軟件重用也不是必然能提高軟件生產(chǎn)率。為研究軟件重用程度與軟件生產(chǎn)率的關(guān)系,我們首先引入下列兩個(gè)量:生產(chǎn)率P=程序總長(zhǎng)度∕開(kāi)發(fā)該程序所用人時(shí)數(shù)重用率R=重用代碼長(zhǎng)度∕程序總長(zhǎng)度令Lt為程序總長(zhǎng)度(目標(biāo)代碼條數(shù)),Ln和Lr分別為新編代碼和重用代碼的長(zhǎng)度(都用目標(biāo)代碼條數(shù)來(lái)度量)。再令Et、En和Er分別代表開(kāi)發(fā)該程序的總工作量、新編程序的工作量和重用已有軟件構(gòu)件的工作量,則有以下等式成立:Lt=Ln+Lr,Et=En+Er,P=Lt∕Et,R=Lr∕Lt.此外,用符號(hào)Cn和Cr分別代表開(kāi)發(fā)新代碼和重用已有軟件構(gòu)件的生產(chǎn)率,則有:Cn=Ln∕En,Cr=Lr∕Er.從上述6個(gè)等式出發(fā),可以推導(dǎo)出下列的生產(chǎn)率與重用率之間的關(guān)系: 從上式可知,重用率R越高,生產(chǎn)率不一定就越高。只有當(dāng)軟件開(kāi)發(fā)人員使用已有的軟件構(gòu)件構(gòu)造應(yīng)用系統(tǒng)時(shí),其工作效率比重新從底層編寫(xiě)程序的效率高時(shí),重用率的提高才會(huì)導(dǎo)致生產(chǎn)率提高??梢?jiàn),通過(guò)軟件重用來(lái)提高軟件生產(chǎn)率,并不是一件輕而易舉的事情。構(gòu)件的實(shí)用程度和使用方便程度,以及軟件人員的素質(zhì)、開(kāi)發(fā)環(huán)境等因素,都直接影響軟件重用的效果。13.2習(xí)題1.軟件重用的含義是什么?軟件重用的范圍有哪些方面?2.比較橫向重用和縱向重用的異同及優(yōu)劣。3.當(dāng)今大多數(shù)軟件重用過(guò)程中,都涉及創(chuàng)建過(guò)程的一個(gè)重要活動(dòng),即界定潛在的可重用的資源。在這個(gè)活動(dòng)中需要一整套的界定方法,并需要一個(gè)能確??芍赜觅Y源被重用的體系結(jié)構(gòu)。這個(gè)活動(dòng)就叫做(A)。而應(yīng)用軟件的開(kāi)發(fā)過(guò)程或重用過(guò)程則稱為(B)。系統(tǒng)地軟件重用的實(shí)質(zhì)是:(C)先投資,即界定并仔細(xì)地創(chuàng)建出可重用的資源,從而可以使得(D)能夠又快又省地開(kāi)發(fā)應(yīng)用軟件。供選擇的答案:A,B.①應(yīng)用系統(tǒng)工程 ②軟件工程 ③論域工程 ④需求工程C,D.①用戶 ②創(chuàng)建者 ③重用者 ④投資者⑤管理者4.所謂一個(gè)“構(gòu)件”,可以是一個(gè)類型、類或其它的工作成品。對(duì)于構(gòu)件,應(yīng)當(dāng)按可重用的要求(A)、(B)、打包、編寫(xiě)文檔。構(gòu)件是(C),并具有相當(dāng)穩(wěn)定的公開(kāi)的(D)。這里的構(gòu)件是基于(E)技術(shù)的。(E)技術(shù)中的封裝、多態(tài)等特性,可簡(jiǎn)化構(gòu)件的開(kāi)發(fā)工作。而(E)技術(shù)中的(F)機(jī)制則有使開(kāi)發(fā)簡(jiǎn)化、維護(hù)復(fù)雜的兩面性。供選擇的答案:A,B.①實(shí)現(xiàn) ②運(yùn)行 ③設(shè)計(jì) ④計(jì)劃C,D.①外聯(lián)的 ②內(nèi)聚的 ③公開(kāi)的 ④私有的⑤外設(shè) ⑥接口 ⑦輸出E,F.①面向數(shù)據(jù) ②面向?qū)ο?③封裝 ④繼承 ⑤重用5.軟件開(kāi)發(fā)人員必須用各種抽象化手段來(lái)開(kāi)發(fā)代碼級(jí)構(gòu)件。典型的抽象方法有3種。(A)、(B)、(C)。(A)使構(gòu)件的(D)僅由接口說(shuō)明確定,而把實(shí)現(xiàn)細(xì)節(jié)對(duì)構(gòu)件的使用者隱藏起來(lái);(B)在(A)的基礎(chǔ)上進(jìn)一步隱藏除接口參數(shù)外的所有數(shù)據(jù)。面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言中的“類”是一種典型的基于(B)的構(gòu)件。(C)則在(B)的基礎(chǔ)上進(jìn)一步實(shí)現(xiàn)在同一構(gòu)件上并發(fā)執(zhí)行的多個(gè)(E)的無(wú)關(guān)性。構(gòu)件提供端口,以便為多個(gè)(F)同時(shí)訪問(wèn)構(gòu)件中的資源進(jìn)行(G)控制。供選擇的答案:AB.①數(shù)據(jù)抽象 ②需求抽象 ③設(shè)計(jì)抽象 ④過(guò)程抽象⑤功能抽象 ⑥實(shí)例抽象DG.①異步 ②程序 ③線程 ④用戶⑤功能 ⑥同步6.回答下列問(wèn)題。(1)簡(jiǎn)述關(guān)鍵詞分類法、多面分類法和超文本分類法等組織方法的概要。(2)簡(jiǎn)述相應(yīng)的檢索方法。

7.試簡(jiǎn)述基于軟件重用的軟件項(xiàng)目管理機(jī)構(gòu)的組織和工作職責(zé)。

習(xí)題參考答案1.軟件重用就是指利用某些早先開(kāi)發(fā)的對(duì)建立新軟件系統(tǒng)有用的軟件元素來(lái)生產(chǎn)新系統(tǒng)。軟件重用的范圍有以下十個(gè)方面:①項(xiàng)目計(jì)劃:軟件項(xiàng)目計(jì)劃的基本結(jié)構(gòu)和許多內(nèi)容都可以跨項(xiàng)目重用。②成本估計(jì):由于不同項(xiàng)目中常包含類似的功能,所以有可能在極少修改或不修改的情況下,重用對(duì)該功能的成本估計(jì)。③體系結(jié)構(gòu):即便應(yīng)用論域千差萬(wàn)別,但程序和數(shù)據(jù)體系結(jié)構(gòu)大同小異。因此,可以創(chuàng)建一組類屬的體系結(jié)構(gòu)模板,將這些模板作為可重用的涉及框架。④需求模型和規(guī)格說(shuō)明:類和對(duì)象的模型和規(guī)格說(shuō)明顯然可以重用。此外,用傳統(tǒng)軟件工程方法開(kāi)發(fā)的分析模型也可以重用。⑤設(shè)計(jì):用傳統(tǒng)方法開(kāi)發(fā)的體系結(jié)構(gòu)、數(shù)據(jù)、接口和過(guò)程化設(shè)計(jì),以及用面向?qū)ο蠓椒ㄩ_(kāi)發(fā)的系統(tǒng)和對(duì)象的設(shè)計(jì)都可以重用。⑥源程序代碼:驗(yàn)證過(guò)的程序構(gòu)件可以拿來(lái)重用的。⑦用戶文檔和技術(shù)文檔:即便特定的應(yīng)用不同,但也經(jīng)常有可能重用用戶文檔和技術(shù)文檔中的大部分內(nèi)容。⑧用戶界面:這可能是最廣泛被重用的軟件元素。如經(jīng)常重用GUI的軟件構(gòu)件。⑨數(shù)據(jù)結(jié)構(gòu):經(jīng)常被重用的數(shù)據(jù)結(jié)構(gòu)包括:內(nèi)部表、列表和記錄結(jié)構(gòu),以及文件和完整的數(shù)據(jù)庫(kù)。⑩測(cè)試用例:只要將設(shè)計(jì)或代碼構(gòu)件定義成可重用構(gòu)件,相關(guān)的測(cè)試用例就應(yīng)當(dāng)成為這些構(gòu)件的“從屬品”。2.軟件重用可以區(qū)分為橫向重用和縱向重用。橫向重用是重用不同應(yīng)用論域中的軟件元素,例如數(shù)據(jù)結(jié)構(gòu)、排序算法、人機(jī)界面構(gòu)件等。標(biāo)準(zhǔn)函數(shù)庫(kù)是一種典型的原始的橫向重用機(jī)制??v向重用是在一類具有較多公共性的應(yīng)用論域之間重用軟件構(gòu)件。橫向重用是在幾個(gè)截然不同的應(yīng)用論域之間進(jìn)行軟件重用,可重用的資源有限,潛力不大??v向重用的應(yīng)用范圍較大,從系統(tǒng)軟件到特定論域的軟件及應(yīng)用軟件,還有軟件工程過(guò)程方面,許多計(jì)算機(jī)軟件廠商開(kāi)發(fā)了大量可重用的構(gòu)件或軟件包,在軟件工程實(shí)踐中取得顯著的效益,因此受到廣泛關(guān)注。3.A.③,B.①,C.②,D.③4.A.③,B.①,C.②,D.⑥,E.②,F.④。5.A.⑤,B.①,C.④,D.⑤,E.③,F.④,G.⑥。6.(1)軟件構(gòu)件的分類方法和相應(yīng)的構(gòu)件庫(kù)結(jié)構(gòu)對(duì)構(gòu)件的檢索和理解有極為深刻的影響,就是說(shuō),可重用構(gòu)件庫(kù)的組織應(yīng)當(dāng)便于構(gòu)件的存儲(chǔ)和檢索。用戶界面①關(guān)鍵詞分類法。此方法的基本思想是:根據(jù)論域分析的結(jié)果,將應(yīng)用論域(族)的概念按照從抽象到具體的順序,逐步分解樹(shù)形結(jié)構(gòu)或有向無(wú)回路圖結(jié)構(gòu)。每個(gè)概念用一個(gè)描述性的關(guān)鍵詞表示。不可再分解的原子層的包含隸屬于它的某些軟件構(gòu)件。下圖給出了可重用構(gòu)件庫(kù)的關(guān)鍵詞分類結(jié)構(gòu),它支持圖形用戶界面設(shè)計(jì)。用戶界面對(duì)話框事件處理菜單窗口對(duì)話框事件處理菜單窗口拖放處理信息對(duì)話框圖形窗口拖放處理信息對(duì)話框圖形窗口鍵盤(pán)事件處理數(shù)據(jù)錄入對(duì)話框文本窗口鍵盤(pán)事件處理數(shù)據(jù)錄入對(duì)話框文本窗口當(dāng)加入新的構(gòu)件時(shí),庫(kù)管理員應(yīng)對(duì)構(gòu)件的功能或行為進(jìn)行分析,瀏覽上述關(guān)鍵詞分類結(jié)構(gòu),將構(gòu)件置于最合適的原子層關(guān)鍵詞下。如果無(wú)法找到構(gòu)件應(yīng)從屬的關(guān)鍵詞,可以擴(kuò)充關(guān)鍵詞分類結(jié)構(gòu),引進(jìn)新的關(guān)鍵詞。但必須保證新關(guān)鍵詞有相應(yīng)的論域分析的結(jié)果作為支持。②多面分類法。此方法由3部分構(gòu)成:多面分類機(jī)制、同義詞庫(kù)和概念距離圖。ⅰ)多面分類機(jī)制:分析論域范圍并定義若干用于描述一個(gè)構(gòu)件特征的“面”,每個(gè)“面”包含若干“概念”,它們表述構(gòu)件在“面”上的基本特征。這些特征根據(jù)它們的重要性排隊(duì)?!懊妗笨梢悦枋鰳?gòu)件執(zhí)行的功能、被操作的數(shù)據(jù)、構(gòu)件應(yīng)用的上下文以及任何其它特征。描述某一構(gòu)件的“面”的集合稱為面描述子。ⅱ)同義詞庫(kù):意義相同或相近的若干詞匯組成同義詞庫(kù)。所有詞匯按照隸屬于“面”的“概念”分組,在任一時(shí)刻點(diǎn),每個(gè)“概念”可用組內(nèi)的某一同義詞匯作為標(biāo)識(shí)載體。ⅲ)概念距離圖:用于度量每個(gè)“面”中“概念”的相似性程度。屬于每個(gè)“面”的一般化概念與其中的兩個(gè)或多個(gè)“概念”以加權(quán)邊相連接,兩個(gè)“概念”的相似性由它們之間的最短加權(quán)路徑上的加權(quán)距離確定,附加于邊上的權(quán)值體現(xiàn)了“概念”之間的差異程度。采用多面分類法進(jìn)行可重用構(gòu)件庫(kù)的組織,必須在存儲(chǔ)軟件構(gòu)件的同時(shí),表示并存儲(chǔ)多面分類機(jī)制、同義詞庫(kù)和概念距離圖。多面分類法的所有語(yǔ)法構(gòu)件(“面”、“概念”、同義詞、一般化概念、差異性權(quán)值)均取材于論域分析的結(jié)果。當(dāng)需要在可重用構(gòu)件庫(kù)中加入新的構(gòu)件時(shí),庫(kù)管理源必須對(duì)構(gòu)件的功能、行為進(jìn)行深入分析,利用現(xiàn)有的多面分類結(jié)構(gòu)確定構(gòu)件的描述子,對(duì)每個(gè)“面”選取合適的“概念”作為特征描述。必要時(shí)可以考慮增加新的“概念”,此時(shí)必須根據(jù)新“概念”完善同義詞庫(kù)和概念距離圖。C③超文本組織法。此方法的基本思想是:所有構(gòu)件都必須輔以詳細(xì)的功能或行為說(shuō)明文檔,說(shuō)明中出現(xiàn)的概念和構(gòu)件以網(wǎng)狀鏈接方式互相連接。檢索者在閱讀文檔的過(guò)程中可任意跳轉(zhuǎn)到包含相關(guān)概念或軟件構(gòu)件的文檔中去。全文檢索系統(tǒng)將用戶給出的關(guān)鍵詞與說(shuō)明文檔中的文字進(jìn)行匹配,實(shí)現(xiàn)軟件構(gòu)件的瀏覽式檢索。C超文本方法以結(jié)點(diǎn)為基本單位,鏈作為結(jié)點(diǎn)之間的聯(lián)想式關(guān)聯(lián)。一般地,結(jié)點(diǎn)是一個(gè)信息塊。對(duì)于可重用構(gòu)件庫(kù)而言,結(jié)點(diǎn)可以是論域的概念、功能或行為名稱、構(gòu)件名稱等,在圖形用戶界面上,結(jié)點(diǎn)可以是字符串,也可以是圖像、聲音、動(dòng)畫(huà)等。(2)可重用構(gòu)件庫(kù)的檢索方法與庫(kù)的組織方式密切相關(guān)。①基于關(guān)鍵詞的檢索:這種檢索方法的基本思想是:系統(tǒng)(CASE工具)在圖形用戶界面上將可重用構(gòu)件庫(kù)的關(guān)鍵詞樹(shù)直觀地展示給用戶,用戶通過(guò)在樹(shù)上的逐級(jí)瀏覽尋找需要的關(guān)鍵詞并提取相應(yīng)的構(gòu)件。當(dāng)然,用戶也可以直接給出關(guān)鍵詞(其中可含有通配符),由系統(tǒng)自動(dòng)地給出合適的候選構(gòu)件清單。這種方法的優(yōu)點(diǎn)是簡(jiǎn)單,易于實(shí)現(xiàn)。缺點(diǎn)是對(duì)庫(kù)的瀏覽容易使用戶迷失方向。②多面檢索:這種檢索方法基于多面分類法。步驟如下:構(gòu)造查詢:用戶提供待查構(gòu)件在每個(gè)“面”上的特征,生成構(gòu)件描述子。此時(shí),用戶可以從可重用構(gòu)件庫(kù)已有

溫馨提示

  • 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)論