所謂柔性軟件開發是指軟件開發過程應在需求工程的牽引下,首先建立系統的頂層模型,并對其進行模擬、分析和調整。次之,將頂層模型自頂向下地進行分解,建立該系統各個子系統的模型,對這些子模型進行模擬、分析和調整。然后將子模型的模擬結果,逐次代入上層,再對該上層模型進一步進行模擬、分析和調整,如有不適,則進行修改。因此整個建模過程是一個"自頂向下建模,由底向上修改"的反復迭代的過程。簡言之,柔性軟件開發過程是一個在需求牽引下,自頂向下分層細化地建模,然后按照"T型技術",通過對模型的虛擬執行,由底向上地逐層上移修改,直至各層的模擬結果都滿足需求為止。
代碼的生成建立在模型正確性的基礎上,同時考慮到對需求修改的靈活性和快速響應能力,實施能夠反饋修改的"閉環開發"。即不僅能支持從模型到代碼的自動生成,將新的模型轉換為代碼,還能支持從代碼到模型的逆向變換,將原有的代碼轉化成模型,進行再次分析、修改和調整以及新一輪的開發,從而為增量式開發提供支持。這樣不僅能做到分階段提交產品,也提高了對用戶需求變化的響應速度和應變能力,以滿足用戶不斷變化的新的需求。
(2) UML支持環境的基本需求
根據上述理論以及我們十五年來研制與開發集成化軟件工程環境正反兩方面的經驗,一個完善的集成化過程工程環境在功能上應滿足以下基本需求:
·應能支持開發完備的過程模型(即應能從過程、資源、機構、行為和信息等五個側面來描述企事業過程)與系統模型(即應能從過程、行為、信息和結構等四個側面來描述一個系統)。
·在這個環境支持下建立的模型應是一個可執行的過程(系統)模型,即應能支持模型的虛擬執行(模擬)和實際運作,從而可在不同的層次上對模型進行分析和優化。
·過程(系統)模型應采用可視化的圖符與正文描述相結合的表達方式,其可視化模型圖的結構應能客觀、自然地反映出企事業各部門間的通信和同步關系。
·應能支持建模人員或管理人員按照企事業(系統)內外部的約束條件對模型的執行進行靈活的控制,從而實現開發過程與管理過程的交叉。
·應能支持從模型自動生成可在Inte.net上運行且支持多平臺共享與多數據庫存取的應用系統,從而實現對第三代過程工程自動化的有力支持。
·還應能支持對各類構件庫的靈活管理,支持基于構件的程序設計方法,實現過程構件、需求描述、系統結構與軟件構件的復用和組裝。
UML集成化支持環境應對集成化過程工程環境和集成化系統工程環境提供強有力的技術支持。一方面在功能與接口上三者必須無縫連接,另一方面在風格上三者必須協調一致。在分工上,過程工程環境的目標是優化過程,系統工程環境的目標是自動產生優化了的計算機應用系統,UML支持環境的目標是為建成柔性的計算機應用系統提供技術支持。