UML 語言對構件設計和描述沒有明確的支持。
采用UML中的面向對象標記只能描述方法調用的交互類型,無法描述構件之間多樣的連接類型;而且它們還不支持構件的層次結構的描述、系統族的定義等。
本文的后幾節打算按以下幾部分進行描述。第2節分析軟件生產線的可變點問題,然后提供一種可變點描述方法。第3節描述基于可重用構件的軟件生產線描述方法。第4節對本文工作進行了總結和展望。
軟件生產線的可變點
軟件生產線的體系結構
穩定而不失靈活性的體系結構是一個成功的軟件生產線的基礎。體系結構描述了軟件產品線應用領域的業務體系結構共性和個性、支持該業務體系結構的信息體系結構、應用體系結構和技術體系結構。軟件生產線為獲得體系結構的重用,必須依據"低耦合、高內聚"的原則,設計能夠適應變更的體系結構,這就要求在捕獲需求時使用域分析的方法,對歷史和前景進行分析(歷史分析用于總結該類系統需求的不變點和可變點,前景分析用來預測系統需求今后可能發生的變化),得到不變和可變的功能需求和質量場景。從體系結構的各個側面來看,變更對體系結構影響的程度從大到小依次為業務、位置、技術、組織、信息和應用。要特別注意對族體系結構可變點的實現。詳細設計的方案應使含有可變點的構件盡可能靈活地適應可變點的變化,提高構件的可重用性。
軟件生產線的可變點分析
關于軟件生產線的可變點描述,我們將以ERP軟件的"庫存子系統"為實例詳細闡述。
對于單個應用系統而言,其可變點可以通過UML建模來實現?勺凕c可以作為類的屬性來實現,例如:倉庫中的某項器材的庫存數量經常處于變動之中,這樣我們可以為器材類添加一個"庫存數量"的屬性?勺凕c還可以通過繼承的方式來實現,由同一父類派生出多個子類,每個子類完成特定的功能。這些都是標準UML語言可以支持的。
對于軟件生產線,它的可變點存在于從需求分析直到設計、實現的各個階段。例如:兩個制造企業都要完成器材的出入庫的功能,但是,某個企業在器材入合格庫之間需要首先進入待驗庫,而另一個企業則無需經過器材檢驗的步驟。這種系統層的可變點通過標準UML語言無法實現。軟件生產線的可變點描述既要實現同一產品族系統的集成,又要清晰地表現同一產品族內單個系統之間的可變性。