?

基于“4+1”視圖的軟件設計模型描述框架與應用

2013-12-27 03:13周珍娟
終身教育研究 2013年3期
關鍵詞:用例視圖文檔

周珍娟

面向對象軟件設計中,產生大量的類、接口、組件、包等模型元素,以及用例圖、類圖、活動圖、序列圖、狀態圖等UML圖。一些面向對象軟件項目的模型元素和UML圖多達幾十至幾百個,導致其UML設計模型難以組織,且相應的設計文檔難以編制,不可避免地遇到如何建立軟件設計模型描述框架的技術問題。UML標準(1.5版)[1]中對模型組織做了初步的規定。文獻[2]給出了組織UML系統模型的五種視圖、動態與靜態兩方面、層次性等觀念。文獻[3]給出了包括接口、接口語義、功能、內部關系等描述的構件描述框架。文獻[4]給出了設計文檔模板的實現方法,一些軟件工具(如:Rose工具[5]、SoDA工具)提供了示例性的UML設計模型和設計文檔模板。

多年來,筆者在多個軟件項目中,使用UML語言和Rose工具進行面向對象設計,使用SoDA工具生成設計文檔。隨著設計細化產生了多達上百個的模型元素和UML圖,遇到了以上所述的模型描述框架問題,并得到了較好的解決,還推廣應用到多個軟件開發單位。本文利用UML擴充機制提出了邏輯用例包、運行設計包、邏輯CSC、邏輯接口數據包等模型擴充描述要素,基于“4+1”視圖體系結構和用例驅動方法建立了包含用例實現、軟件進程、軟件結構、外部/內部接口的設計模型描述框架,并利用該設計模型描述框架在Rose和SoDA工具上建立了UML設計模型模板和設計文檔模板,實現了建模模板化和文檔生成自動化。

一、軟件設計模型描述框架

“4+1”視圖體系結構[8]包括邏輯視圖、進程視圖、開發視圖、物理視圖和用例視圖。用例視圖描述了軟件需要的功能,并協調其他視圖,保持設計的一致性,利用該視圖可以建立軟件用例實現模型。邏輯視圖描述了組成軟件的若干類及其關系,利用該視圖可以建立軟件結構模型和接口設計模型。進程視圖描述了系統至進程和任務的分解以及這些并發元素之間的通信和同步,利用該視圖可以建立軟件進程模型。開發視圖描述了在開發環境中軟件的靜態組織結構,利用該視圖可以建立軟件組件模型。物理視圖描述了物理網絡的配置,軟件至硬件的映射,通過軟件設計建立軟件部署模型。這些模型共同構成軟件設計模型。筆者用BNF范式來表示軟件設計模型描述框架。

<軟件設計模型>∷=<軟件用例實現設計子模型>+<軟件結構設計子模型>+<軟件組件設計子模型>+<接口設計子模型>+<軟件進程設計子模型>+<軟件部署設計子模型>

其中,前四個模型一般均要用于軟件設計建模,軟件用例實現設計模型通過用例驅動方法與其他模型銜接,軟件進程設計模型只用于多進程設計建模,軟件部署設計模型只用于分布式軟件設計建模。以下針對各設計模型,進一步給出其描述框架。

1.軟件用例實現設計子模型

在軟件設計過程中,每個用例均有相應的實現,可以用用例圖表示相關用例和角色之間的關系,用序列圖表示實現該用例的若干參與對象及其時序消息關系,用類圖表示實現用例的這些參與對象所屬類的相互關系,用活動圖表示實現該用例的若干活動之間的關系,用狀態圖表示實現該用例的若干狀態之間的轉換關系。由此,得到用例實現的基本構成。

如果用例實現較多(一般多于5~7個),可以根據情況將用例實現分包,形成用例實現包。如果用例實現包還是比較多,可以根據情況將用例實現包繼續分包,形成邏輯用例實現包。如果邏輯用例實現包仍然比較多,還可以進一步分包,形成高層的邏輯用例實現包。

這樣就由用例實現、用例實現包、邏輯用例實現包逐層構成了軟件用例實現設計模型,其BNF范式描述形式如下:

<軟件用例實現設計子模型>∷={<邏輯用例實現包>|<用例實現包>}|{<用例實現>}+<用例圖>+[<活動圖>]

<邏輯用例實現包>∷={<邏輯用例實現包>|<用例實現包>}+<用例圖>+[<活動圖>]

<用例實現包>∷={<用例實現>}+<用例圖>+[<活動圖>]

<用例實現>∷=<用例圖>+<序列圖>+[<類圖>]+[<活動圖>]+[<狀態圖>]

2.軟件結構設計子模型

軟件結構設計模型以類和類之間關系為基礎描述軟件組成和結構。若干類組成具有語意的類包,如果類包對應于某個組件,就為CSC。若干類包可以組成具有語意的邏輯類包,多個邏輯類包和類包可以組成具有語意的、更大的邏輯類包,若干CSC可以組成具有語意的邏輯CSC。對于較復雜的軟件可以先分邏輯層,再按類包、邏輯類包組織類。

這樣就由類、類包、CSC、邏輯類包、邏輯CSC、邏輯層構成了軟件結構設計模型,其BNF范式描述形式如下:

<軟件結構設計子模型>∷={<邏輯層>}|{<邏輯CSC>|<邏輯類包>|<類包>}+<類圖>

<邏輯層>∷={<邏輯CSC>|<邏輯類包>|<類包>}+<類圖>

<邏輯CSC>∷= {}+<類圖>

∷={<類>}+{<類圖>}

<邏輯類包>∷={<類包>}+<類圖>

<類包>∷={<類>}+{<類圖>}

3.軟件組件設計子模型

軟件組件設計子模型描述軟件組件及其關系。每個組件實行相應的若干類,若干組件構成有語意的組件包,若干組件包和已構成的邏輯組件包可以構成新的、有語意的邏輯組件包。

這樣就由組件、組件包、邏輯組件包構成了軟件組件模型,其BNF范式描述形式如下:

<軟件組件設計子模型>∷={<邏輯組件包>|<組件包>}|{<組件>}+<組件圖>

<邏輯組件包>∷={<邏輯組件包>|<組件包>}+<組件圖>

<組件包>∷={<組件>}+<組件圖>

<組件>∷={<實現組件的類>}

4.接口設計子模型

接口設計子模型描述軟件的外部接口和內部接口,細分為外部接口設計模型和內部接口設計模型。外部接口設計模型由接口類、接口設計包構成的外部接口設計架構以及由接口數據、接口數據包、邏輯接口數據包構成的外部接口數據架構兩大部分組成。內部接口設計模型由接口類、接口設計包、CSC接口設計包構成的內部接口設計架構以及由接口數據、接口數據包、邏輯接口數據包構成的內部接口數據架構兩大部分組成。接口設計模型的BNF范式描述形式如下:

<接口設計子模型>∷=<外部接口設計子模型>+<內部接口設計子模型>

<外部接口設計子模型>∷=<外部接口設計架構>+<外部接口數據架構>

<外部接口設計架構>∷={<接口設計包>}+<類圖>

<接口設計包>∷={<接口類>}+{<類圖>}

<外部接口數據架構>∷={<邏輯接口數據包>|<接口數據包>}+<類圖>

<邏輯接口數據包>∷={<邏輯接口數據包>|<接口數據包>}+<類圖>

<接口數據包>∷={<接口數據>}+{<類圖>}

<內部接口設計模型>∷=<內部接口設計架構>+<內部接口數據架構>

<內部接口設計架構>∷={<接口設計包>|}+{<類圖>}

∷={<接口設計包>|}+{<類圖>}

<內部接口數據架構>∷={<邏輯接口數據包>|<接口數據包>}+<類圖>

5.軟件進程設計子模型

軟件進程設計模型描述進程及其之間的通信關系,分為一個進程結構包、一個進程間通信包和若干進程包。其BNF范式描述形式如下:

<軟件進程設計子模型>∷=<進程結構包>+<進程間通信包>+{<進程包>}

<進程結構包>∷={<類圖>}+{<序列圖>}+{<狀態圖>}

<進程間通信包>∷={<類圖>}+{<序列圖>}

<進程包>∷={<類圖>}+{<序列圖>}+{<狀態圖>}

6.軟件部署設計子模型

軟件部署設計子模型描述軟件運行平臺和軟件在該平臺上的部署,可以有若干處理機、若干設備和一個可視化的部署圖。其BNF范式描述形式如下:

<軟件部署設計子模型>∷={<部署的處理機>}+{<部署的設備>}+<部署圖>

<部署的處理機>∷={<部署的進程及優先級>}

在以上的UML設計模型描述框架中,提出了若干新的描述元素,這些元素可以利用UML的構造型擴充機制構造出來。

二、軟件設計模型描述框架的應用

筆者在多個軟件項目的軟件設計過程中,應用上面的UML軟件設計描述框架,在Rose工具上建立了設計模型模板,在SoDA工具上建立了配套的設計文檔生成模板,實現了建??蚣芑臀臋n生成自動化。

1.設計模型模板

由UML軟件設計描述框架可以建立層次化的設計模型模板,如:由邏輯層、邏輯CSC、CSC、邏輯類包、類包組成的層次化軟件結構設計模型模板,參見圖1。

圖1 由UML軟件設計描述框架到軟件結構模型模板示例

2.設計文檔自動生成模板

根據UML軟件設計模型描述框架,可以在SoDA工具上建立與設計模型模板配套的設計文檔自動生成模板,通過SoDA工具可以將邏輯CSC/CSC/邏輯類包/類包/類的說明、類圖、活動圖、狀態圖等自動抽取為設計文檔內容。圖2給出了設計文檔自動生成模板的一段實例,表i對應CSC/類包的類及其說明,圖j對應邏輯CSC/CSC/邏輯類包/類包的類圖。

筆者在建立UML軟件設計模型描述框架的基礎上,利用軟件設計模型模板可以比較方便地進行軟件設計和組織軟件設計模型,利用設計文檔生成模板可以比較方便地由軟件設計模型自動生成設計文檔,實現了建模模板化和文檔生成自動化,并保證了文檔與模型的一致性。

圖2 設計文檔自動生成模板實例

三、結束語

本文提出了基于“4+1”視圖的UML設計模型描述框架,給出其在設計模型模板和設計文檔模板方面的應用,說明結合Rose和SoDA能實現建??蚣芑?、建模與文檔編制一體化、文檔生成自動化,能提高面向對象設計建模和文檔編制效率。本文的UML設計模型框架雖然具有通用性,但領域性還不強。因此,下一步工作重點是結合不同領域特點開展UML設計模型框架研究。

[1] Object Management Group,UML1.5[EB/OL].[2003-03-01].http://www.omg.org/spec/UML/1.5/PDF.

[2] 麻志毅. UML系統模型的組織[J].計算機工程,2002,28 (4):287-289.

[3] 張涌,王淵峰,錢樂秋. 一個集成式的軟件構件描述框架[J].計算機學報,2002(5):502-507.

[4] 崔紅軍,曹淑青,邵培南. 文檔模板的設計與實現[J].計算機工程,2000(12):84-86.

[5] 王智學.Rose對象建模方法與技術[M].北京:機械工業出版社,2003.

猜你喜歡
用例視圖文檔
淺談Matlab與Word文檔的應用接口
UML用例間包含關系與泛化關系的比較與分析
UML用例模型中依賴關系的比較與分析
有人一聲不吭向你扔了個文檔
聯鎖軟件詳細設計的測試需求分析和用例編寫
視圖
Y—20重型運輸機多視圖
SA2型76毫米車載高炮多視圖
Word文檔 高效分合有高招
Django 框架中通用類視圖的用法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合