亚洲色成人影院在线观看,,,

需要咨詢么?

如果您有任何問題,可以在下面提問或者輸入您需要咨詢的內(nèi)容!

軟件項(xiàng)目定制開發(fā)的技術(shù)債務(wù)是如何產(chǎn)生的?

軟件項(xiàng)目定制開發(fā)通常會有兩種開發(fā)方法:MDD模型驅(qū)動開發(fā)和TDD測試驅(qū)動開發(fā)。這兩種方法可能會交互使用,通常情況下,使用合適的、恰當(dāng)?shù)腗DD模型驅(qū)動開發(fā)可以消除和降低技術(shù)債務(wù),而不恰當(dāng)、錯(cuò)誤與過度抽象的MDD模型驅(qū)動開發(fā)則會惡性增加技術(shù)債務(wù),TDD測試驅(qū)動開發(fā)一般會良性地增加技術(shù)債務(wù)。

一般由TDD測試驅(qū)動開發(fā),MDD模型驅(qū)動開發(fā),TDD測試驅(qū)動開發(fā),MDD模型驅(qū)動開發(fā)......這樣交替運(yùn)營可以通過良性增加技術(shù)債務(wù)來貼近真實(shí)需求和模型重構(gòu)來消除良性技術(shù)債務(wù)。跳過TDD測試驅(qū)動開發(fā)的MDD模型驅(qū)動開發(fā)一般會增加大量惡性技術(shù)債務(wù),而跳過大量MDD模型驅(qū)動開發(fā)的TDD測試驅(qū)動開發(fā)則會使得大量良性技術(shù)債務(wù)積累并培育成惡行技術(shù)債務(wù)。

軟件項(xiàng)目定制開發(fā)通常會以項(xiàng)目成員與涉眾當(dāng)前對項(xiàng)目目標(biāo)、需要、范圍、風(fēng)險(xiǎn)、質(zhì)量、預(yù)算、人力、資產(chǎn)、能力等方面的初始認(rèn)識做出一個(gè)初始的項(xiàng)目計(jì)劃及項(xiàng)目工作結(jié)構(gòu)分解,采用MDD模型驅(qū)動開發(fā)的方法按照計(jì)劃執(zhí)行完成項(xiàng)目來得到一個(gè)可運(yùn)行的初始版本軟件。這個(gè)過程通常會持續(xù)1~2個(gè)月。

MDD模型驅(qū)動開發(fā)更多地是采用瀑布開發(fā)模型,只有完整的模型雛形完成后才能成為一個(gè)可運(yùn)行的軟件執(zhí)行其中特定的業(yè)務(wù)邏輯。MDD模型驅(qū)動開發(fā)是一個(gè)自上而下的方法,需要領(lǐng)域背景知識和模型框架支持來做分解和計(jì)劃。如果使用敏捷迭代的方法,通常一個(gè)迭代周期需要1.5個(gè)月來完成一個(gè)完整的模型實(shí)現(xiàn)。MDD模型驅(qū)動開發(fā)可以快速、高效和有效地建立初始框架雛形,但是交付結(jié)果一般非常粗糙。

TDD測試驅(qū)動開發(fā)和MDD模型驅(qū)動開發(fā)相比會更敏捷一些。TDD測試驅(qū)動開發(fā)首先需要設(shè)計(jì)許多詳細(xì)的測試用例。TDD測試驅(qū)動開發(fā)可以使得一個(gè)迭代周期小到一個(gè)測試用例的尺寸,但是在實(shí)際的商業(yè)場景中還需要考慮項(xiàng)目管理和環(huán)境切換的成本,更短的迭代周期使得項(xiàng)目管理和新增的環(huán)境切換成本高于長迭代周期的項(xiàng)目運(yùn)營??紤]到這些因素,一般推薦TDD測試驅(qū)動開發(fā)采用2個(gè)星期至1個(gè)月的迭代周期正常配置。一周或者更短的迭代周期只適合特殊情況下臨時(shí)的應(yīng)急補(bǔ)丁和客戶演示。

在軟件項(xiàng)目定制開發(fā)中,試驗(yàn)樣品和原型可以成為或者合并到最終交付物中或者敏捷迭代開發(fā)方法TDD測試驅(qū)動開發(fā)的初始輸入,有些試驗(yàn)樣品和原型會演化和優(yōu)化,有些則會隨著它們的技術(shù)債務(wù)一起被丟棄。通常試驗(yàn)樣品和原型經(jīng)過幾個(gè)迭代周期的迭代會演化為實(shí)際產(chǎn)品功能交付物,在演化的過程中隨著軟件需求的凍結(jié)逐漸穩(wěn)定。如果在持續(xù)演化的過程中軟件需求不能凍結(jié)并且仍然在持續(xù)不斷地輸入進(jìn)來,新的不穩(wěn)定的試驗(yàn)樣品和原型也會隨著新增的軟件需求合并到軟件交付物中,導(dǎo)致軟件項(xiàng)目定制的技術(shù)債務(wù)不斷增加。

耦合性是一種技術(shù)債務(wù),在正常的公司運(yùn)營和軟件開發(fā)中通常都有一個(gè)資產(chǎn)負(fù)債表:資產(chǎn)(軟件特性和功能)=股權(quán)(對軟件資產(chǎn)的控制權(quán)既可控性)+負(fù)債(技術(shù)債務(wù))。試驗(yàn)樣品和原型是一種在預(yù)算資源和時(shí)間日程有限的情況下短期通過增加資產(chǎn)負(fù)債表右端的技術(shù)債務(wù)來快速增加資產(chǎn)負(fù)債表左邊的資產(chǎn)(軟件特性和功能)的軟件項(xiàng)目定制融資投資的操作方法。這樣可以快速和低成本得到一個(gè)可以工作的軟件,但是它的可控性和可操作性有限和不太理想。

技術(shù)債務(wù)通常還來源于多個(gè)不同地方,比如:

(1).領(lǐng)域流程知識的缺乏和誤解

(2).軟件依賴數(shù)據(jù)接口設(shè)計(jì)和知識的缺乏和誤解

(3).軟件內(nèi)部依賴數(shù)據(jù)模型設(shè)計(jì)和知識的缺乏和誤解

(4).軟件輸出數(shù)據(jù)接口及格式的設(shè)計(jì)和知識的缺乏和誤解

(5).軟件與用戶交互設(shè)計(jì)和知識的缺乏和誤解

(6).軟件與第三方系統(tǒng)或者依賴環(huán)境交互設(shè)計(jì)和知識的缺乏和誤解

(7).項(xiàng)目管理領(lǐng)域的知識和經(jīng)驗(yàn)的缺乏

(8).不穩(wěn)定和正在發(fā)現(xiàn)階段的需求

(9).軟件設(shè)計(jì)、編程、測試和溝通方面的知識和經(jīng)驗(yàn)

(10).系統(tǒng)集成方面的知識和經(jīng)驗(yàn)

針對上述的大多數(shù)資產(chǎn)(軟件,經(jīng)驗(yàn),功能,特性,需求,使用知識,文檔),通常都有這樣的資產(chǎn)負(fù)債表:

資產(chǎn)(數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)關(guān)系,業(yè)務(wù)邏輯關(guān)系,概念,需求,部件,文檔,軟件,代碼,數(shù)據(jù),測試用例,使用方法等)

=

股權(quán)(知識,知道懂得的,懂得如何做,有經(jīng)驗(yàn)的,設(shè)計(jì)足夠的,文檔編檔的,完全跟蹤記錄的,溝通足夠好的,用戶友好的等等)

+

負(fù)債(不知道的,未設(shè)計(jì)的或者過度設(shè)計(jì)的,未工程化的或者過度工程化的,未溝通,無法溝通的,沒有跟蹤記錄的,用戶不友好的,重復(fù)的代碼,耦合的,模糊誤導(dǎo)的,大規(guī)模的文檔,很難讀懂的文檔,重復(fù)和令人困惑的表達(dá)[比如沒有更新的文檔和持續(xù)更新的代碼之間])

敏捷迭代方法更像是短期內(nèi)受制于有限的股權(quán)而主要通過增加資產(chǎn)負(fù)債表右邊的負(fù)債來快速增加資產(chǎn)負(fù)債表左邊的資產(chǎn),其中使用TDD測試驅(qū)動開發(fā)通過擴(kuò)張資產(chǎn)負(fù)債表來開發(fā)更多資產(chǎn)。后續(xù)再使用瀑布、例行流程或者固化的工作流通過仔細(xì)和系統(tǒng)的方法,在保持左端資產(chǎn)不變的情況下操作資產(chǎn)負(fù)債表右端,逐步降低負(fù)債并增加股權(quán)。這樣通過修復(fù)資產(chǎn)負(fù)債表到一個(gè)更加健康的狀態(tài)結(jié)構(gòu),為下一輪資產(chǎn)負(fù)債表擴(kuò)表做好準(zhǔn)備,或者僅僅是通過減少技術(shù)債務(wù)來降低后續(xù)運(yùn)營成本(技術(shù)債務(wù)導(dǎo)致的固定成本現(xiàn)金流支出)。

同時(shí)還有另外一種針對試驗(yàn)樣品和原型的操作,用戶可能根據(jù)在使用軟件之后的經(jīng)驗(yàn)反饋?zhàn)罱K決定放棄這些資產(chǎn)(功能特性),這時(shí)這些技術(shù)債務(wù)(負(fù)債)也隨同試驗(yàn)樣品和原型一同放棄,這樣將負(fù)債轉(zhuǎn)換為股權(quán)操作的成本可以節(jié)省下來。

當(dāng)使用MDD模型驅(qū)動開發(fā)將一種形式的資產(chǎn)(比如,數(shù)據(jù)表單設(shè)計(jì)Excel案例模板)轉(zhuǎn)換成另一種形式的資產(chǎn)(比如,軟件的源代碼),它們的資產(chǎn)負(fù)債表(資產(chǎn)=股權(quán)+債務(wù))也同時(shí)被轉(zhuǎn)換。理想情況下,最好的轉(zhuǎn)換操作結(jié)果是在去除新形式資產(chǎn)的增值之后,新形式的資產(chǎn)和舊形式的資產(chǎn)總量一樣,新資產(chǎn)的股權(quán)會小于等于舊形式的股權(quán),新形式的負(fù)債會大于等于舊形式的負(fù)債。但是在實(shí)際的商業(yè)案例中,考慮到轉(zhuǎn)換損失,比如過程中的誤解,一般新形式的股權(quán)會遠(yuǎn)小于舊形式的股權(quán),新形式的負(fù)債會遠(yuǎn)大于舊形式的負(fù)債。

使用TDD測試驅(qū)動開發(fā)來針對新形式資產(chǎn)可以增值的功能特性增值使得新形式的資產(chǎn)遠(yuǎn)大于舊形式的資產(chǎn),有的時(shí)候也使得新形式的股權(quán)增值大于舊形式的股權(quán),并且有的時(shí)候也同時(shí)使得新形式的負(fù)債遠(yuǎn)大于舊形式的負(fù)債。這個(gè)時(shí)候可再次通過MDD模型驅(qū)動開發(fā)在保持新形式的資產(chǎn)不變的情況下來將新形式的負(fù)債轉(zhuǎn)換為新形式的股權(quán),來修復(fù)資產(chǎn)負(fù)債表到一個(gè)健康的水平。

在進(jìn)行上述各種復(fù)雜的資產(chǎn)負(fù)債表操作的時(shí)候,就需要一套跟蹤操作與審計(jì)的系統(tǒng),來保證在將債務(wù)(負(fù)債)轉(zhuǎn)換為股權(quán)的過程中不影響到資產(chǎn)。

(0) Comments

回復(fù)留言

您的電子郵箱地址會被隱藏。*為必填字段 *

您可以使用這些HTML標(biāo)簽和屬性 <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

驗(yàn)證碼