您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 基于“4+1”视图的UML设计模型描述框架与应用
1基于“4+1”视图的面向对象软件设计模型描述框架及其应用多年来,我们使用UML语言和Rose工具进行面向对象设计,使用SoDA工具生成设计文档。在面向对象软件设计中,产生大量的类、接口、组件、包等模型元素,以及用例图、类图、活动图、序列图、状态图等UML图。一些面向对象软件项目的模型元素和UML图多达几十至几百个,导致其UML设计模型难以组织和相应的设计文档难以编制,不可避免地遇到如何建立软件设计模型描述框架的技术问题。为此,利用UML扩充机制提出了逻辑用例包、运行设计包、逻辑CSC、逻辑接口数据包等模型扩充描述要素,基于“4+1”视图体系结构和用例驱动方法建立了包含用例实现、软件进程、软件结构、外部/内部接口的设计模型描述框架,并利用该设计模型描述框架在Rose和SoDA工具上建立了UML设计模型模板和设计文档模板,实现了建模模板化和文档生成自动化。1软件设计模型描述框架“4+1”视图体系结构包括逻辑视图、进程视图、开发视图、物理视图和用例视图。用例视图描述了软件需要的功能,并协调其他视图,保持设计的一致性,利用该视图可以建立软件用例实现模型。逻辑视图描述了组成软件的若干类及其关系,利用该视图可以建立软件结构模型和接口设计模型。进程视图描述了系统至进程和任务的分解以及这些并发元素之间的通讯和同步,利用该视图可以建立软件进程模型。开发视图描述了在开发环境中软件的静态组织结构,利用该视图可以建立软件组件模型。物理视图描述了物理网络的配置,软件至硬件的映射,通过软件设计建立软件部署模型。这些模型共同构成软件设计模型。我们用BNF范式来表示软件设计模型描述框架。其中,前四个模型一般均要用于软件设计建模,软件用例实现设计模型通过用例驱动方法与其它模型衔接,软件进程设计模型只用于多进程设计建模,软件部署设计模型只用于分布式软件设计建模。以下针对各设计模型,进一步给出其描述框架。(1)软件用例实现设计子模型在软件设计过程中,每个用例均有相应的实现,可以用用例图表示相关用例和角色之间的关系,用序列图表示实现该用例的若干参与对象及其时序消息关系,用类图表示实现用例的这些参与对象所属类的相互关系,用活动图表示实现该用例的若干活动之间的关系,用状态图表示实现该用例的若干状态之间的转换关系。由此,得到用例实现的基本构成。如果用例实现较多(一般多于5~7个),可以根据情况将用例实现分包,形成用例实现包。如果用例实现包还是比较多,可以根据情况将用例实现包继续分包,形成逻辑用例实现包。如果逻辑用例实现包仍然比较多,还可以进一步分包,形成高层的逻辑用例实现包。这样就由用例实现、用例实现包、逻辑用例实现包逐层构成了软件用例实现设计模型,其BNF范式描述形式如下:软件设计模型∷=软件用例实现设计子模型+软件结构设计子模型+软件组件设计子模型+接口设计子模型+软件进程设计子模型+软件部署设计子模型2(2)软件结构设计子模型软件结构设计模型以类和类之间关系为基础描述软件组成和结构。若干类组成具有语意的类包,如果类包对应于某个组件,就为CSC。若干类包可以组成具有语意的逻辑类包,多个逻辑类包和类包可以组成具有语意的、更大的逻辑类包,若干CSC可以组成具有语意的逻辑CSC。对于较复杂的软件可以先分逻辑层,再按类包、逻辑类包组织类。这样就由类、类包、CSC、逻辑类包、逻辑CSC、逻辑层构成了软件结构设计模型,其BNF范式描述形式如下:(3)软件组件设计子模型软件组件设计子模型描述软件组件及其关系。每个组件实行相应的若干类,若干组件构成有语意的组件包,若干组件包和已构成的逻辑组件包可以构成新的、有语意的逻辑组件包。这样就由组件、组件包、逻辑组件包构成了软件组件模型,其BNF范式描述形式如下:(4)接口设计子模型接口设计子模型描述软件的外部接口和内部接口,细分为外部接口设计模型和内部接口设计模型。外部接口设计模型由接口类、接口设计包构成的外部接口设计架构以及由接口数据、接口数据包、逻辑接口数据包构成的外部接口数据架构两大部分组成。内部接口设计模型由接口类、接口设计包、CSC接口设计包构成的内部接口设计架构以及由接口数据、接口数据包、逻辑接口数据包构成的内部接口数据架构两大部分组成。接口设计模型的BNF范式描述形式如下:软件组件设计子模型∷={逻辑组件包|组件包}|{组件}+组件图逻辑组件包∷={逻辑组件包|组件包}+组件图组件包∷={组件}+组件图组件∷={实现组件的类}软件结构设计子模型∷={逻辑层}|{逻辑CSC|逻辑类包|类包}+类图逻辑层∷={逻辑CSC|逻辑类包|类包}+类图逻辑CSC∷={CSC}+类图CSC∷={类}+{类图}逻辑类包∷={类包}+类图类包∷={类}+{类图}软件用例实现设计子模型∷={逻辑用例实现包|用例实现包}|{用例实现}+用例图+[活动图]逻辑用例实现包∷={逻辑用例实现包|用例实现包}+用例图+[活动图]用例实现包∷={用例实现}+用例图+[活动图]用例实现∷=用例图+序列图+[类图]+[活动图]+[状态图]3(5)软件进程设计子模型软件进程设计模型描述进程及其之间的通信关系,分为一个进程结构包、一个进程间通信包和若干进程包。其BNF范式描述形式如下:(6)软件部署设计子模型软件部署设计子模型描述软件运行平台和软件在该平台上的部署,可以有若干处理机、若干设备和一个可视化的部署图。其BNF范式描述形式如下:在以上的UML设计模型描述框架中,提出了若干新的描述元素,这些元素可以利用UML的构造型扩充机制构造出来。2软件设计模型描述框架的应用我们在软件设计过程中,应用上面的UML软件设计描述框架,在Rose工具上建立了设计模型模板,在SoDA工具上建立了配套的设计文档生成模板,实现了建模框架化和文档生成自动化。(1)设计模型模板由UML软件设计描述框架可以建立层次化的设计模型模板,如:由逻辑层、逻辑CSC、CSC、逻辑类包、类包组成的层次化软件结构设计模型模板,参见图1。软件部署设计子模型∷={部署的处理机}+{部署的设备}+部署图部署的处理机∷={部署的进程及优先级}软件进程设计子模型∷=进程结构包+进程间通信包+{进程包}进程结构包∷={类图}+{序列图}+{状态图}进程间通信包∷={类图}+{序列图}进程包∷={类图}+{序列图}+{状态图}接口设计子模型∷=外部接口设计子模型+内部接口设计子模型外部接口设计子模型∷=外部接口设计架构+外部接口数据架构外部接口设计架构∷={接口设计包}+类图接口设计包∷={接口类}+{类图}外部接口数据架构∷={逻辑接口数据包|接口数据包}+类图逻辑接口数据包∷={逻辑接口数据包|接口数据包}+类图接口数据包∷={接口数据}+{类图}内部接口设计模型∷=内部接口设计架构+内部接口数据架构内部接口设计架构∷={接口设计包|CSC接口设计包}+{类图}CSC接口设计包∷={接口设计包|CSC接口设计包}+{类图}内部接口数据架构∷={逻辑接口数据包|接口数据包}+类图4软件结构设计子模型∷={逻辑层}|{逻辑CSC|逻辑类包|类包}+类图逻辑层∷={逻辑CSC|逻辑类包|类包}+类图逻辑CSC∷={CSC}+类图CSC∷={类}+{类图}逻辑类包∷={类包}+类图类包∷={类}+{类图}软件结构设计子模型∷={逻辑层}|{逻辑CSC|逻辑类包|类包}+类图逻辑层∷={逻辑CSC|逻辑类包|类包}+类图逻辑CSC∷={CSC}+类图CSC∷={类}+{类图}逻辑类包∷={类包}+类图类包∷={类}+{类图}图1由UML软件设计描述框架到软件结构模型模板示例(2)设计文档自动生成模板根据UML软件设计模型描述框架,可以在SoDA工具上建立与设计模型模板配套的设计文档自动生成模板。图2给出了设计文档自动生成模板的一段实例,通过SoDA工具可从软件结构设计子模型自动抽取设计文档的软件结构章节内容。其中,x.1章节内容对应逻辑层,表x-1对应逻辑层的逻辑CSC/CSC/逻辑类包/类包及其说明,图x-1对应逻辑层的类图;x.1.1章节内容对应逻辑CSC/CSC/逻辑类包/类包,表x-2对应逻辑CSC/逻辑类包的CSC/类包及其说明,表x-3对应CSC/类包的类及其说明,图x-2对应逻辑CSC/CSC/逻辑类包/类包的类图。5图2设计文档自动生成模板实例我们在建立UML软件设计模型描述框架的基础上,利用软件设计模型模板可以比较方便地进行软件设计和组织软件设计模型,利用设计文档生成模板可以比较方便地由软件设计模型自动生成设计文档,实现了建模模板化和文档生成自动化,并保证了文档与模型的一致性。xCSCI结构设计[MASTER2][REPEAT3]x.1层DISPLAY4]Package.Name[ENDDISP5][DISPLAY6]Package.Name[ENDDISP7]的子包说明见下表。表x-1[DISPLAY8]Package.Name[ENDDISP9]的子包说明[MASTER10]包名包说明[REPEAT11][DISPLAY12]SubPackages.Name[ENDDISP13][DISPLAY14]SubPackages.Documentation[ENDDISP15][ENDREP16][ENDMAST17][MASTER18][REPEAT19]下图表示,[DISPLAY20]ClassDiagram.Documentation[ENDDISP21][DISPLAY22][ENDDISP23]图x-1[DISPLAY24]ClassDiagram.Name[ENDDISP25][ENDREP26][ENDMAST27][LIMIT28][MASTER29][REPEAT30]x.1.1包[DISPLAY31]SubPackages.Name[ENDDISP32][LIMIT33][DISPLAY34]Subpackages.Name[ENDDISP35]的子包说明见下表。表x-1[DISPLAY36]SubPackages.Name[ENDDISP37]的子包说明[MASTER38]包名包说明[REPEAT39][DISPLAY40]SubPackages2.Name[ENDDISP41][DISPLAY42]SubPackages2.Documentation[ENDDISP43][ENDREP44][ENDMAST45][ENDLIM46][LIMIT47][DISPLAY48]SubPackages.Name[ENDDISP49]的类说明见下表。表x-3[DISPLAY50]SubPackages.Name[ENDDISP51]的类说明[MASTER52]类名类说明[REPEAT53][DISPLAY54]Class.Name[ENDDISP55][DISPLAY56]Class.Documentation[ENDDISP57][ENDREP58][ENDMAST59][ENDLIM60][MASTER61][REPEAT62]下图表示,[DISPLAY63]ClassDiagram.Documentation[ENDDISP64][
本文标题:基于“4+1”视图的UML设计模型描述框架与应用
链接地址:https://www.777doc.com/doc-2573061 .html