Baldwin和Clark12似乎是最早發現模塊化在(計算機系統)設計中的價值可以作為選項被建模的人。他們做了一個統計上的假設:一個已有模塊的獨立開發部件的價值是呈正態分布的。
今天,基于選擇性模型的軟件工程過程正在變得更易于理解。13例如,Boehm和Port引用Parnas提出的“為變化進行設計”和“信息隱藏”方法:
例如,Parnas信息隱藏模塊概念的提出是基于如下的基本原則的:一個軟件系統的生存周期的大部分成本來自懸而未決的變化[Lientz-Swanson, 1980]。一個系統如果要創造價值,一次增量的成本應與它產生利益呈正比;但是如果系統設計沒有考慮到變化,變化的成本(重寫代碼)將與利益不成比例[Parnas, 1972]。信息隱藏模塊化是為變化進行設計的關鍵。因此在我們能正確預期變化的前提下,為變化進行設計就成為了最大化價值的策略。盡管這是一個巨大的啟發,我們還缺乏足夠的連接這一技術概念與給定條件下的價值創造的模型。14
更進一步地,Dean Johnson et al. 指出,對于未來市場方向的不確定性可以通過在項目早期把模塊(比如,一個可移植層)設計到應用中進行管理:
包含這樣一個層涉及了額外的早期開發成本。盡管如此,它可以省錢,或通過允許設計者迅速做出變化而不是重寫大量代碼在后面的開發階段創造價值。我們使用不動產選項方法來估計這種可移植性帶來的靈活性的價值。敏感性分析被用于檢驗可移植性價值和一些因素的變化之間的關系,這些因素包括應用程序不得不重寫的可能性,期望的應用程序壽命,以及未來重開發的成本,等等。15
在IBM developerWorks,2005年8月刊中,“面向服務的敏捷性:成功的面向服務構架 (SOA)的開發方法,第二部分:如何混合油和水”16一文的作者在他們的“原則3:盡可能晚地做決定”中引用了可以作為一個成功的SOA開發的“靈活的”不動產選項方法:
盡可能晚地做出決定意味著保留服務接口細節開放,直到獲得對它們的清楚描述,而不是假裝知道一切。這迫使開發團隊頻繁地與公司其他部門進行同步,這導致了更好的服務模型。
作者在“定型的經濟模型”一節中明確提及“基于選擇權的軟件經濟”:
從傳統上來說,軟件開發被視為消耗性活動。近期以來,軟件開發漸漸被視為產生能幫助利用經濟選擇性的效益的活動;谶x擇性的軟件經濟可與金融市場進行類比:發布可被視為不動產選項的運行軟件的短迭代。和金融選擇性一樣,實物期權提供了這樣一種好處:你可以有機會通過現在投資一點在不確定的未來有所收益。但是并不需要多復雜的操作:如果你建立一個簡單的契約經濟模型并用它驅動開發決策,即時一個SOA契約也會獲利。手頭有了經濟模型的時候,團隊成員就有能力自己確定商業中的重要因素:它們都來自相同的假設。如果你考慮消除一些特性,你的市場部可能會推算說沒有這些特性他們的銷售量將會降低“X”個百分點。17
靈活性被植入由RUP描述的迭代方法中。實際上,RUP迭代可以看作有計劃,發布,和評估的“迷你項目”。它們還可以從價值和商業的角度被視為保持軟件設計進行,同時計劃和估計不斷精確,不確定性減少的“迷你投資”。換句話說,迭代開發引入了拖延的優點,同時管理了與它相關的錯過市場機會的風險。
多年來,RUP已經發展為一個過程工程平臺,現在稱為IBM Rational Method Composer。RMC使得團隊能夠定義,配置,調整和實踐一個持續的軟件開發過程。一個RMC發布過程提供了一個完整的生存周期模型,該模型包括了被細化的在方法內容中的工作分解結構(WBS)。軟件設計人員可以創造并把他們的過程作為一個過程網站發布,或者作為一個工作分解結構輸出到 IBM Rational Portfolio Manager 。
然后項目經理可以執行項目并使用各種生成價值度量跟蹤項目,同時 IBM Rational Portfolio Manager 可以評估投資度量,比如NPV,IRR,以及 IBM Rational Portfolio Manager 工具集的項目組合儀表特性的總利潤。
IBM為軟件項目評估提供的工具和方法本身并不能創造價值,但是它們可以幫助客戶理解哪些項目可以為他們的生意創造可持續價值。有了這一觀念,項目經理和商業領導人就可以使他們的項目更具靈活性和可適應性,這將為整體軟件項目組合增加價值。
為了合理分配資源以產生有競爭力的第一步,軟件開發經理需要方式,方法,和語言來評估項目的經濟價值。外行人比如客戶,投資者,涉眾,和審計員通常會認為重要的商業決定是基于合理和可靠的評估方法的。
使用IBM Rational產品的從業人員可是采用諸如NPV和IRR的技術來評估軟件的經濟價值,采用基于COCOMO II的算法來評估工作量。更進一步,他們可以在Rational統一過程中,Rational Method Composer和 IBM Rational Portfolio Manager 的使用中采用軟件開發原則和實踐來為他們的客戶創造價值,同時管理成本,風險,以及他們自己的產品的上市時間。
文章來源于領測軟件測試網 http://www.kjueaiud.com/