国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

用預(yù)測性對象點(diǎn)度量面向?qū)ο筌浖?/h1>
2019-11-17 04:46:13
字體:
供稿:網(wǎng)友
近年來,面向?qū)ο蠹夹g(shù)已經(jīng)作為一種有優(yōu)勢的軟件工程方法出現(xiàn)。和其他許多新技術(shù)一樣,面向?qū)ο蠓椒ǖ某霈F(xiàn)使得軟件開發(fā)人員和他們的經(jīng)理們必須重新考慮估計(jì)他們開發(fā)項(xiàng)目的方法。傳統(tǒng)的軟件度量技術(shù)即使進(jìn)行改善也無法滿足度量生產(chǎn)力和猜測工作的需要。源代碼行和功能點(diǎn)方法都是程序需要將數(shù)據(jù)和過程分解開的時代特有產(chǎn)物。這和面向?qū)ο蠓懂犛袥_突。傳統(tǒng)的設(shè)計(jì)技術(shù)將數(shù)據(jù)和過程分離而面向?qū)ο蠹夹g(shù)將他們聯(lián)合在一起。假如要提供準(zhǔn)確的工作猜測或生產(chǎn)力跟蹤,面對對象度量方法必須有多個尺度(度量維)。計(jì)算交付給客戶的軟件具有功能數(shù)非常重要,但對象間交流的信息和通過繼續(xù)的重用對規(guī)模度量也非常重要。本文論述了猜測性對象點(diǎn)(PRedictive Object Points POPs),一種包含前面提到的面對對象3個尺度的度量方法。不像傳統(tǒng)的度量方法基于結(jié)構(gòu)分析的數(shù)據(jù)和過程模型,POPs是基于對象和他們的特征。POPs綜合了文獻(xiàn)中幾種流行的度量方法,建立一種適合猜測工作量和跟蹤生產(chǎn)力的方法。POPs方法的核心是每類加權(quán)方法數(shù)(Weighted Methods per Class WMC)。這種方法測量每個頂層類(或者說,每個在用戶的視野中清楚的對象)并且根據(jù)類的行為(方法)類型不同進(jìn)行加權(quán)。一旦得到WMC的值,POPs方法將把它和有關(guān)按類分對象組的信息和對象類之間的關(guān)系進(jìn)行聯(lián)合計(jì)算。接下來本文將論述POPs方法形成過程和有關(guān)工作研究結(jié)果,并且介紹一個猜測性對象點(diǎn)方法應(yīng)用的例證。通過對一個公用領(lǐng)域的面向?qū)ο箜?xiàng)目的使用,能指導(dǎo)讀者熟悉計(jì)算猜測性對象點(diǎn)的機(jī)理。傳統(tǒng)的度量有什么錯誤傳統(tǒng)的度量方法在一些度量過程中還占有一席之地。一些年來,軟件開發(fā)人員和軟件估計(jì)人員使用源代碼行(SLOC)或者功能點(diǎn)方法估計(jì)要建設(shè)的面向?qū)ο筌浖?xiàng)目的工作量,這不是因?yàn)樗麄冞x用的方法是最好的,但卻可能是最適合的,經(jīng)常在組織面向?qū)ο筮^程不夠成熟時他們比較適合。相反地,當(dāng)組織越來越善于設(shè)計(jì)和開發(fā)面向?qū)ο筌浖r,這些傳統(tǒng)的方法變得越來越?jīng)]有用了,因?yàn)槊總€開發(fā)人員的代碼行變得和其他人員的不是很相似。變化的原因很明顯,他們已經(jīng)停止了思考每一行代碼是怎樣和另一行代碼相匹配,停止了結(jié)構(gòu)化分析,走向面向?qū)ο蠓椒ǖ牡缆贰J紫任覀儾环料胂雮鹘y(tǒng)的程序方法和它是怎么發(fā)展的。最初,軟件開發(fā)人員被迫將的軟件方案完全分解,因?yàn)樽钤绲某绦蛘Z言需要辛勞地一步一步描寫要實(shí)現(xiàn)的每一個方案的動作。隨著編程的發(fā)展,越來越多的一步步描寫變成了一個簡單的編譯命令。但是還需要分解功能業(yè)務(wù)。 結(jié)構(gòu)化分析需要開發(fā)人員按過程連續(xù)地思考和編程,編寫每一行代碼,每一個函數(shù)和每個子系統(tǒng),每一個產(chǎn)品,都是一種單一連續(xù)思維。在這種對源代碼和函數(shù)單一的思想下,很輕易想到像代碼行和功能點(diǎn)這樣度量方法。但面向?qū)ο蠹夹g(shù)要求人們完全轉(zhuǎn)變思想。一個方案不再根據(jù)需要實(shí)現(xiàn)它的步驟進(jìn)行分解。它寧愿分解成一個個包含在方案的動作者,當(dāng)然分解出來的動作者必須對方案有作用。方案空間分解為動作者和動作者的行為。既然動作者和他們的行為受他們內(nèi)部之間相互作用或者環(huán)境的影響,所以每一行代碼的想法需要考慮許多可能的作用在動作者上的路徑。基于連續(xù)程序開發(fā)模型的度量方法將會錯過這種相互作用所導(dǎo)致的復(fù)雜性。相關(guān)研究面向?qū)ο蠖攘康难芯浚瑹o論如何不是一塊未曾開墾的處女地。Chidamber 等曾提出一套面向?qū)ο蠖攘浚渲邪ㄒ恍┒攘恳?guī)模的方法,他們都是很好地根據(jù)度量理論創(chuàng)立的[4]。Lorenz發(fā)布了一張11個“構(gòu)思度量”的表,其中有些能很好適用于規(guī)模度量[16]。其他一些學(xué)者在收集軟件開發(fā)工作不同的度量尺度時做出了貢獻(xiàn)。Henderson-Sellers收集形成了一個這些方法的全部名單[2]。由于以前每種方法都是致力于面向?qū)ο筌浖囊?guī)模的一個度量尺度,這些方法沒有一個能單獨(dú)用作一個很好的規(guī)模猜測器。Whitmire提出了3-D功能點(diǎn)[19],這是一種擴(kuò)展的功能點(diǎn)方法,度量軟件項(xiàng)目的數(shù)據(jù)、控制和功能。然而3-D功能點(diǎn)采用的是傳統(tǒng)的功能點(diǎn)思想處理碰到的問題,他可以度量所有3個尺度,但只能完成在類的水平。這就使得3-D功能點(diǎn)能作為一個完整的軟件生產(chǎn)力分析的方法,但不可能用作工作量猜測。表1列出了一些比較流行的適合于面向?qū)ο筌浖攘糠椒ê退麄兛梢远攘肯到y(tǒng)特征方面。度量方法

適用的度量方面

用例/情節(jié)腳本數(shù)(Number of use cases/scenario scripts)

規(guī)模

每類加權(quán)方法(Weighted Methods per Class (WMC))

規(guī)模,復(fù)雜性

每類方法(Methods per Class)

規(guī)模

子類數(shù)(Number of Children (NOC))

規(guī)模,復(fù)雜性

繼續(xù)樹深度(Depth in Inheritance Tree (DIT))

規(guī)模,復(fù)雜性

方法大小(Method Size(LOC))

規(guī)模

3-D 功能點(diǎn)(3-D Function Points)

規(guī)模,復(fù)雜性

對象間的耦合(Coupling Between Objects (CBO))

耦合

每類實(shí)例化變量數(shù)(Number of Instance Variables per class)

復(fù)雜性

獨(dú)立消息發(fā)送數(shù)(Number of unique messages sent)

耦合/復(fù)雜性

超類數(shù)(Number of classes inherited(derived classes))

復(fù)雜性

派生類數(shù)(Number of classes inherited from (base classes))

復(fù)雜性

重用率(Reuse Ration)

品質(zhì),復(fù)雜性
表1 一些流行的面向?qū)ο蠖攘糠椒?STRONG>面向?qū)ο筌浖亩攘砍叨冉Y(jié)構(gòu)傳統(tǒng)度量方法應(yīng)用于面向?qū)ο蠼鉀Q方案時的問題是只度量軟件的一個尺度,即功能。沒有度量對象與對象間通信的復(fù)雜性和通過繼續(xù)的重用數(shù)量,傳統(tǒng)功能性度量忽略了軟件規(guī)模至關(guān)重要的這兩個方面。功能(對象的行為)是你猜測工作量時一個重要的信息,但只是考慮這個方面,在設(shè)計(jì)得比較好的面向?qū)ο蠓桨钢袝黠@證實(shí)是錯誤的。在功能之外,還有基于系統(tǒng)對象間通信數(shù)量的復(fù)雜水平。這種復(fù)雜性充分影響項(xiàng)目規(guī)模。對象間的通信增加,就需要更多的具體設(shè)計(jì)和對象測試,他們就是在增加更多的系統(tǒng)服務(wù)。面向?qū)ο笠?guī)模的第三個尺度是通過繼續(xù)的重用。部分優(yōu)秀的面向?qū)ο蠓治鰡T潛心識別對象(動作著),將行為足夠相似的分成一個相同的類或一個相同的類族。 類是通過行為和屬性進(jìn)行描述,實(shí)例化就有了具體的對象。一組有許多相似行為的對象經(jīng)常設(shè)計(jì)為基類(或者父類),基類包含可以供派生類(或者子類)繼續(xù)的一般方法,子類也可以添加新的方法和通過重載父類方法實(shí)現(xiàn)父類定義的方法中沒有提供的功能。 繼續(xù)是面向?qū)ο筌浖到y(tǒng)一個強(qiáng)有力的特征,在某些軟件項(xiàng)目,它有可能大大減少項(xiàng)目工作量。度量所有的三維已經(jīng)確定傳統(tǒng)的度量方法缺少準(zhǔn)確估計(jì)軟件規(guī)模的三維中的兩維,下一步的就是確定一種能合并所有三維的度量方法或者度量方法集合。猜測性對象點(diǎn),本文的主題,綜合了最近文獻(xiàn)中出現(xiàn)的幾種度量面向?qū)ο蟮能浖姆椒āK麄兪撬嘘P(guān)于軟件系統(tǒng)面向?qū)ο蠓治龊驮O(shè)計(jì)的度量方法。這些方法度量項(xiàng)目面向的最重要方面~開發(fā)的類,類的方法和類的方法對系統(tǒng)其他部分的作用。他們也聯(lián)合度量擬定類結(jié)構(gòu)的廣度和深度。包含在POPs計(jì)算的度量方法有:頂層類數(shù)(Number of Top Level Classes TLC )

每類的加權(quán)平均方法數(shù)(Average Number of Weighted Methods per Class WMC)

平均繼續(xù)樹深度(Average Depth of Inheritance Tree DIT )

平均每基類的子類數(shù)(Average Number of Children per Base Class NOC)近年來,面向?qū)ο蠹夹g(shù)已經(jīng)作為一種有優(yōu)勢的軟件工程方法出現(xiàn)。和其他許多新技術(shù)一樣,面向?qū)ο蠓椒ǖ某霈F(xiàn)使得軟件開發(fā)人員和他們的經(jīng)理們必須重新考慮估計(jì)他們開發(fā)項(xiàng)目的方法。傳統(tǒng)的軟件度量技術(shù)即使進(jìn)行改善也無法滿足度量生產(chǎn)力和猜測工作的需要。源代碼行和功能點(diǎn)方法都是程序需要將數(shù)據(jù)和過程分解開的時代特有產(chǎn)物。這和面向?qū)ο蠓懂犛袥_突。傳統(tǒng)的設(shè)計(jì)技術(shù)將數(shù)據(jù)和過程分離而面向?qū)ο蠹夹g(shù)將他們聯(lián)合在一起。假如要提供準(zhǔn)確的工作猜測或生產(chǎn)力跟蹤,面對對象度量方法必須有多個尺度(度量維)。計(jì)算交付給客戶的軟件具有功能數(shù)非常重要,但對象間交流的信息和通過繼續(xù)的重用對規(guī)模度量也非常重要。本文論述了猜測性對象點(diǎn)(Predictive Object Points POPs),一種包含前面提到的面對對象3個尺度的度量方法。不像傳統(tǒng)的度量方法基于結(jié)構(gòu)分析的數(shù)據(jù)和過程模型,POPs是基于對象和他們的特征。POPs綜合了文獻(xiàn)中幾種流行的度量方法,建立一種適合猜測工作量和跟蹤生產(chǎn)力的方法。POPs方法的核心是每類加權(quán)方法數(shù)(Weighted Methods per Class WMC)。這種方法測量每個頂層類(或者說,每個在用戶的視野中清楚的對象)并且根據(jù)類的行為(方法)類型不同進(jìn)行加權(quán)。一旦得到WMC的值,POPs方法將把它和有關(guān)按類分對象組的信息和對象類之間的關(guān)系進(jìn)行聯(lián)合計(jì)算。接下來本文將論述POPs方法形成過程和有關(guān)工作研究結(jié)果,并且介紹一個猜測性對象點(diǎn)方法應(yīng)用的例證。通過對一個公用領(lǐng)域的面向?qū)ο箜?xiàng)目的使用,能指導(dǎo)讀者熟悉計(jì)算猜測性對象點(diǎn)的機(jī)理。傳統(tǒng)的度量有什么錯誤傳統(tǒng)的度量方法在一些度量過程中還占有一席之地。一些年來,軟件開發(fā)人員和軟件估計(jì)人員使用源代碼行(SLOC)或者功能點(diǎn)方法估計(jì)要建設(shè)的面向?qū)ο筌浖?xiàng)目的工作量,這不是因?yàn)樗麄冞x用的方法是最好的,但卻可能是最適合的,經(jīng)常在組織面向?qū)ο筮^程不夠成熟時他們比較適合。相反地,當(dāng)組織越來越善于設(shè)計(jì)和開發(fā)面向?qū)ο筌浖r,這些傳統(tǒng)的方法變得越來越?jīng)]有用了,因?yàn)槊總€開發(fā)人員的代碼行變得和其他人員的不是很相似。變化的原因很明顯,他們已經(jīng)停止了思考每一行代碼是怎樣和另一行代碼相匹配,停止了結(jié)構(gòu)化分析,走向面向?qū)ο蠓椒ǖ牡缆贰J紫任覀儾环料胂雮鹘y(tǒng)的程序方法和它是怎么發(fā)展的。最初,軟件開發(fā)人員被迫將的軟件方案完全分解,因?yàn)樽钤绲某绦蛘Z言需要辛勞地一步一步描寫要實(shí)現(xiàn)的每一個方案的動作。隨著編程的發(fā)展,越來越多的一步步描寫變成了一個簡單的編譯命令。但是還需要分解功能業(yè)務(wù)。 結(jié)構(gòu)化分析需要開發(fā)人員按過程連續(xù)地思考和編程,編寫每一行代碼,每一個函數(shù)和每個子系統(tǒng),每一個產(chǎn)品,都是一種單一連續(xù)思維。在這種對源代碼和函數(shù)單一的思想下,很輕易想到像代碼行和功能點(diǎn)這樣度量方法。但面向?qū)ο蠹夹g(shù)要求人們完全轉(zhuǎn)變思想。一個方案不再根據(jù)需要實(shí)現(xiàn)它的步驟進(jìn)行分解。它寧愿分解成一個個包含在方案的動作者,當(dāng)然分解出來的動作者必須對方案有作用。方案空間分解為動作者和動作者的行為。既然動作者和他們的行為受他們內(nèi)部之間相互作用或者環(huán)境的影響,所以每一行代碼的想法需要考慮許多可能的作用在動作者上的路徑。基于連續(xù)程序開發(fā)模型的度量方法將會錯過這種相互作用所導(dǎo)致的復(fù)雜性。相關(guān)研究面向?qū)ο蠖攘康难芯浚瑹o論如何不是一塊未曾開墾的處女地。Chidamber 等曾提出一套面向?qū)ο蠖攘浚渲邪ㄒ恍┒攘恳?guī)模的方法,他們都是很好地根據(jù)度量理論創(chuàng)立的[4]。Lorenz發(fā)布了一張11個“構(gòu)思度量”的表,其中有些能很好適用于規(guī)模度量[16]。其他一些學(xué)者在收集軟件開發(fā)工作不同的度量尺度時做出了貢獻(xiàn)。Henderson-Sellers收集形成了一個這些方法的全部名單[2]。由于以前每種方法都是致力于面向?qū)ο筌浖囊?guī)模的一個度量尺度,這些方法沒有一個能單獨(dú)用作一個很好的規(guī)模猜測器。Whitmire提出了3-D功能點(diǎn)[19],這是一種擴(kuò)展的功能點(diǎn)方法,度量軟件項(xiàng)目的數(shù)據(jù)、控制和功能。然而3-D功能點(diǎn)采用的是傳統(tǒng)的功能點(diǎn)思想處理碰到的問題,他可以度量所有3個尺度,但只能完成在類的水平。這就使得3-D功能點(diǎn)能作為一個完整的軟件生產(chǎn)力分析的方法,但不可能用作工作量猜測。表1列出了一些比較流行的適合于面向?qū)ο筌浖攘糠椒ê退麄兛梢远攘肯到y(tǒng)特征方面。度量方法

適用的度量方面

用例/情節(jié)腳本數(shù)(Number of use cases/scenario scripts)

規(guī)模

每類加權(quán)方法(Weighted Methods per Class (WMC))

規(guī)模,復(fù)雜性

每類方法(Methods per Class)

規(guī)模

子類數(shù)(Number of Children (NOC))

規(guī)模,復(fù)雜性

繼續(xù)樹深度(Depth in Inheritance Tree (DIT))

規(guī)模,復(fù)雜性

方法大小(Method Size(LOC))

規(guī)模

3-D 功能點(diǎn)(3-D Function Points)

規(guī)模,復(fù)雜性

對象間的耦合(Coupling Between Objects (CBO))

耦合

每類實(shí)例化變量數(shù)(Number of Instance Variables per class)

復(fù)雜性

獨(dú)立消息發(fā)送數(shù)(Number of unique messages sent)

耦合/復(fù)雜性

超類數(shù)(Number of classes inherited(derived classes))

復(fù)雜性

派生類數(shù)(Number of classes inherited from (base classes))

復(fù)雜性

重用率(Reuse Ration)

品質(zhì),復(fù)雜性
表1 一些流行的面向?qū)ο蠖攘糠椒?STRONG>面向?qū)ο筌浖亩攘砍叨冉Y(jié)構(gòu)傳統(tǒng)度量方法應(yīng)用于面向?qū)ο蠼鉀Q方案時的問題是只度量軟件的一個尺度,即功能。沒有度量對象與對象間通信的復(fù)雜性和通過繼續(xù)的重用數(shù)量,傳統(tǒng)功能性度量忽略了軟件規(guī)模至關(guān)重要的這兩個方面。功能(對象的行為)是你猜測工作量時一個重要的信息,但只是考慮這個方面,在設(shè)計(jì)得比較好的面向?qū)ο蠓桨钢袝黠@證實(shí)是錯誤的。在功能之外,還有基于系統(tǒng)對象間通信數(shù)量的復(fù)雜水平。這種復(fù)雜性充分影響項(xiàng)目規(guī)模。對象間的通信增加,就需要更多的具體設(shè)計(jì)和對象測試,他們就是在增加更多的系統(tǒng)服務(wù)。面向?qū)ο笠?guī)模的第三個尺度是通過繼續(xù)的重用。部分優(yōu)秀的面向?qū)ο蠓治鰡T潛心識別對象(動作著),將行為足夠相似的分成一個相同的類或一個相同的類族。 類是通過行為和屬性進(jìn)行描述,實(shí)例化就有了具體的對象。一組有許多相似行為的對象經(jīng)常設(shè)計(jì)為基類(或者父類),基類包含可以供派生類(或者子類)繼續(xù)的一般方法,子類也可以添加新的方法和通過重載父類方法實(shí)現(xiàn)父類定義的方法中沒有提供的功能。 繼續(xù)是面向?qū)ο筌浖到y(tǒng)一個強(qiáng)有力的特征,在某些軟件項(xiàng)目,它有可能大大減少項(xiàng)目工作量。度量所有的三維已經(jīng)確定傳統(tǒng)的度量方法缺少準(zhǔn)確估計(jì)軟件規(guī)模的三維中的兩維,下一步的就是確定一種能合并所有三維的度量方法或者度量方法集合。猜測性對象點(diǎn),本文的主題,綜合了最近文獻(xiàn)中出現(xiàn)的幾種度量面向?qū)ο蟮能浖姆椒āK麄兪撬嘘P(guān)于軟件系統(tǒng)面向?qū)ο蠓治龊驮O(shè)計(jì)的度量方法。這些方法度量項(xiàng)目面向的最重要方面~開發(fā)的類,類的方法和類的方法對系統(tǒng)其他部分的作用。他們也聯(lián)合度量擬定類結(jié)構(gòu)的廣度和深度。包含在POPs計(jì)算的度量方法有:頂層類數(shù)(Number of Top Level Classes TLC )

每類的加權(quán)平均方法數(shù)(Average Number of Weighted Methods per Class WMC)

平均繼續(xù)樹深度(Average Depth of Inheritance Tree DIT )

平均每基類的子類數(shù)(Average Number of Children per Base Class NOC)

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

主站蜘蛛池模板: 乌拉特后旗| 平湖市| 义乌市| 迁安市| 湘阴县| 龙胜| 永宁县| 竹山县| 江北区| 洪江市| 叶城县| 庆城县| 专栏| 独山县| 永善县| 泰宁县| 鸡泽县| 来凤县| 夏邑县| 荆门市| 罗城| 威宁| 六安市| 衡阳市| 友谊县| 克拉玛依市| 从江县| 马龙县| 齐齐哈尔市| 盐山县| 宜昌市| 百色市| 伊吾县| 洛浦县| 济阳县| 桂平市| 宁晋县| 台北县| 鲁甸县| 阿拉善左旗| 芦溪县|