逻辑架构与UML包图详解.ppt
- 文档编号:2155625
- 上传时间:2022-10-27
- 格式:PPT
- 页数:37
- 大小:390KB
逻辑架构与UML包图详解.ppt
《逻辑架构与UML包图详解.ppt》由会员分享,可在线阅读,更多相关《逻辑架构与UML包图详解.ppt(37页珍藏版)》请在冰豆网上搜索。
第第13章章逻辑架构和逻辑架构和UML包图包图目标目标nn介绍使用层的逻辑架构介绍使用层的逻辑架构nn阐述使用阐述使用UML包图的逻辑架构包图的逻辑架构简介简介nn现在,我们就从面向分析的工作过渡到现在,我们就从面向分析的工作过渡到软件设计软件设计nn典型典型OO系统设计的基础是若干架构层,系统设计的基础是若干架构层,例如例如UI层、应用逻辑(或层、应用逻辑(或“领域领域”)层等。
)层等。
UP制品相互影响制品相互影响nn业务建模业务建模业务建模业务建模领域模型领域模型领域模型领域模型nn需求需求需求需求用例模型用例模型用例模型用例模型设想设想设想设想补充性规格说明补充性规格说明补充性规格说明补充性规格说明词汇表词汇表词汇表词汇表nn设计设计设计设计逻辑架构的包图逻辑架构的包图逻辑架构的包图逻辑架构的包图(静态视图)静态视图)静态视图)静态视图)交互图交互图交互图交互图(动态视图)动态视图)动态视图)动态视图)类图(静态视图类图(静态视图类图(静态视图类图(静态视图)UP制品相互影响制品相互影响nn强调的是逻辑架构(强调的是逻辑架构(LA)nn主要的输入是补充性规格说明中记录的主要的输入是补充性规格说明中记录的架构方面的约束和要点架构方面的约束和要点nnLA定义了包,包中有关于软件类的定义定义了包,包中有关于软件类的定义示例示例逻辑架构(逻辑架构(logicalarchitecture)nn逻辑架构逻辑架构是软件类的宏观组织结构,它是软件类的宏观组织结构,它将软件类组织为包将软件类组织为包(或命名空间)、子或命名空间)、子系统和层等。
系统和层等。
nn为何称其为逻辑架构?
为何称其为逻辑架构?
因为并未决定如何在不同的操作系统进因为并未决定如何在不同的操作系统进程或网络中物理的计算机上对这些元素程或网络中物理的计算机上对这些元素进行部署(后一种决定是部署架构的一进行部署(后一种决定是部署架构的一部分)。
部分)。
层(层(Layer)nn层是对类、包或子系统的甚为粗粒度的层是对类、包或子系统的甚为粗粒度的分组,具有对系统主要方面加以内聚的分组,具有对系统主要方面加以内聚的职责。
职责。
nn层按照层按照“较高较高”层(例如层(例如UI层)可以调用层)可以调用“较低较低”层的服务层的服务nnOO系统中通常包括的层有:
系统中通常包括的层有:
用户界面用户界面用户界面用户界面应用逻辑和领域对象应用逻辑和领域对象应用逻辑和领域对象应用逻辑和领域对象技术服务(例如数据库接口或错误日志)技术服务(例如数据库接口或错误日志)技术服务(例如数据库接口或错误日志)技术服务(例如数据库接口或错误日志)独立于应用的,也可在多个系统中复用的独立于应用的,也可在多个系统中复用的独立于应用的,也可在多个系统中复用的独立于应用的,也可在多个系统中复用的服务。
服务。
服务。
服务。
架构分层架构分层nn在严格的分层架构中,层只能调用与其相邻在严格的分层架构中,层只能调用与其相邻在严格的分层架构中,层只能调用与其相邻在严格的分层架构中,层只能调用与其相邻的下层的服务。
这种设计在网络协议栈中比的下层的服务。
这种设计在网络协议栈中比的下层的服务。
这种设计在网络协议栈中比的下层的服务。
这种设计在网络协议栈中比较常见,而在信息系统中不太常见。
在信息较常见,而在信息系统中不太常见。
在信息较常见,而在信息系统中不太常见。
在信息较常见,而在信息系统中不太常见。
在信息系统中通常使用宽松的分层架构,其中较高系统中通常使用宽松的分层架构,其中较高系统中通常使用宽松的分层架构,其中较高系统中通常使用宽松的分层架构,其中较高层可以调用其下任何层的服务层可以调用其下任何层的服务层可以调用其下任何层的服务层可以调用其下任何层的服务nn例如,例如,例如,例如,UIUI层可以调用与其相邻的应用逻辑层,层可以调用与其相邻的应用逻辑层,层可以调用与其相邻的应用逻辑层,层可以调用与其相邻的应用逻辑层,也可以调用更下面的技术服务层中的元素,也可以调用更下面的技术服务层中的元素,也可以调用更下面的技术服务层中的元素,也可以调用更下面的技术服务层中的元素,完成日志记录等工作完成日志记录等工作完成日志记录等工作完成日志记录等工作nn逻辑架构并非一定要组织为层。
但这种方式逻辑架构并非一定要组织为层。
但这种方式逻辑架构并非一定要组织为层。
但这种方式逻辑架构并非一定要组织为层。
但这种方式极为常用极为常用极为常用极为常用案例研究中应该关注的层案例研究中应该关注的层nn尽管OO技术可以用于所有级别,但本课程对OOA/D的介绍着重于核心应用逻辑(或“领域”)层,其次才是对其他层的讨论。
软件架构软件架构nn软件架构(宏观)软件架构(宏观)软件架构(宏观)软件架构(宏观)架构是一种重要决策,其中涉及软件系统的组织架构是一种重要决策,其中涉及软件系统的组织架构是一种重要决策,其中涉及软件系统的组织架构是一种重要决策,其中涉及软件系统的组织对结构元素及其组成系统所籍接口的选择对结构元素及其组成系统所籍接口的选择对结构元素及其组成系统所籍接口的选择对结构元素及其组成系统所籍接口的选择这些元素特定于其相互协作的行为这些元素特定于其相互协作的行为这些元素特定于其相互协作的行为这些元素特定于其相互协作的行为这些结构和行为元素到规模更大的子系统的组成这些结构和行为元素到规模更大的子系统的组成这些结构和行为元素到规模更大的子系统的组成这些结构和行为元素到规模更大的子系统的组成以及指导该组织结构的架构风格以及指导该组织结构的架构风格以及指导该组织结构的架构风格以及指导该组织结构的架构风格这些元素及其接口、协作、和组成这些元素及其接口、协作、和组成这些元素及其接口、协作、和组成这些元素及其接口、协作、和组成软件架构师是做什么的?
软件架构师是做什么的?
nn软件架构师的职责软件架构师的职责软件架构师的职责软件架构师的职责是把需求转换为软件世界的模型。
是把需求转换为软件世界的模型。
是把需求转换为软件世界的模型。
是把需求转换为软件世界的模型。
4+14+1视图中以视图中以视图中以视图中以usecaseusecase作为核心,其中功能性需作为核心,其中功能性需作为核心,其中功能性需作为核心,其中功能性需求以及部分非功能性需求会被软件架构师通过分析求以及部分非功能性需求会被软件架构师通过分析求以及部分非功能性需求会被软件架构师通过分析求以及部分非功能性需求会被软件架构师通过分析和设计,映射为各种软件设计模型。
从和设计,映射为各种软件设计模型。
从和设计,映射为各种软件设计模型。
从和设计,映射为各种软件设计模型。
从OOA/OODOOA/OOD角度说,角度说,角度说,角度说,usecaseusecase在这个过程中是要转换为各种在这个过程中是要转换为各种在这个过程中是要转换为各种在这个过程中是要转换为各种UMLUML,其中类图,序列图,状态图是最常用到的。
,其中类图,序列图,状态图是最常用到的。
,其中类图,序列图,状态图是最常用到的。
,其中类图,序列图,状态图是最常用到的。
这个转换过程是需要智慧的,这个转换过程是需要智慧的,这个转换过程是需要智慧的,这个转换过程是需要智慧的,usecaseusecase是目的,各是目的,各是目的,各是目的,各种种种种OOOO的原则是指导,设计模式是经验,灵活运用的原则是指导,设计模式是经验,灵活运用的原则是指导,设计模式是经验,灵活运用的原则是指导,设计模式是经验,灵活运用是能力。
里面蕴涵了设计的美感,我觉得这个过程是能力。
里面蕴涵了设计的美感,我觉得这个过程是能力。
里面蕴涵了设计的美感,我觉得这个过程是能力。
里面蕴涵了设计的美感,我觉得这个过程是衡量一个软件架构师的最重要的指标。
这个过程是衡量一个软件架构师的最重要的指标。
这个过程是衡量一个软件架构师的最重要的指标。
这个过程是衡量一个软件架构师的最重要的指标。
这个过程是需要创造力和想象力的。
可能很多人认为这个地是需要创造力和想象力的。
可能很多人认为这个地是需要创造力和想象力的。
可能很多人认为这个地是需要创造力和想象力的。
可能很多人认为这个地方正是软件架构师体现能力的地方。
方正是软件架构师体现能力的地方。
方正是软件架构师体现能力的地方。
方正是软件架构师体现能力的地方。
UML包图包图nnUML包图通常用于描述系统的逻辑架构包图通常用于描述系统的逻辑架构层层层层子系统子系统子系统子系统包(就包(就包(就包(就JavaJava)而言等)而言等)而言等)而言等nn层可以建模为层可以建模为UML包。
例如,包。
例如,UI层可层可以建模为名为以建模为名为UI的包的包UML包图包图nnUMLUML包图提供了组织元素的方式(类,其他包,包图提供了组织元素的方式(类,其他包,用例,用例,)nn嵌套包十分常见嵌套包十分常见nnUMLUML包是比包是比JavaJava包和包和.NET.NET命名空间更为通用的概命名空间更为通用的概念念nn如果包内部显示了其成员,则在标签上标识包名;如果包内部显示了其成员,则在标签上标识包名;否则,可以在包体内标识包名称否则,可以在包体内标识包名称nn人们通常希望显示包之间的依赖性人们通常希望显示包之间的依赖性(耦合),以耦合),以便开发者能够看到系统内大型事物之间的耦合。
便开发者能够看到系统内大型事物之间的耦合。
nnUMLUML的依赖线即可用于此目的,依赖线是有箭头的依赖线即可用于此目的,依赖线是有箭头的虚线,箭头指向被依赖的包的虚线,箭头指向被依赖的包nn完全限定的名称完全限定的名称例如例如Java:
util:
DateJava:
util:
DateUML工具:
从代码逆向工程工具:
从代码逆向工程产生包图产生包图nn开发早期,根据绘制的开发早期,根据绘制的UML包图的草图包图的草图来组织代码;来组织代码;nn随着代码库的不断增长,编程上花费的随着代码库的不断增长,编程上花费的时间更多,减少了建模或绘制时间更多,减少了建模或绘制UML图的图的时间,可以利用时间,可以利用UMLCASE工具对源代工具对源代码进行逆向工程,从而自动生成包图。
码进行逆向工程,从而自动生成包图。
准则:
使用层进行设计准则:
使用层进行设计nn使用层时:
使用层时:
将系统的大型逻辑结构组织为独立的、职将系统的大型逻辑结构组织为独立的、职将系统的大型逻辑结构组织为独立的、职将系统的大型逻辑结构组织为独立的、职责相关的离散层,具有清晰、内聚的关注责相关的离散层,具有清晰、内聚的关注责相关的离散层,具有清晰、内聚的关注责相关的离散层,具有清晰、内聚的关注分离。
这样,分离。
这样,分离。
这样,分离。
这样,“较低较低较低较低”的层是低级别和一的层是低级别和一的层是低级别和一的层是低级别和一般性服务,较高的层则是与应用相关的。
般性服务,较高的层则是与应用相关的。
般性服务,较高的层则是与应用相关的。
般性服务,较高的层则是与应用相关的。
协作和耦合是从较高层到较低层进行的,协作和耦合是从较高层到较低层进行的,协作和耦合是从较高层到较低层进行的,协作和耦合是从较高层到较低层进行的,要避免从较低层到较高层的耦合。
要避免从较低层到较高层的耦合。
要避免从较低层到较高层的耦合。
要避免从较低层到较高层的耦合。
设计问题设计问题nn使用层有助于解决如下问题:
使用层有助于解决如下问题:
使用层有助于解决如下问题:
使用层有助于解决如下问题:
源码的变更波及整个系统大部分系统是高度耦源码的变更波及整个系统大部分系统是高度耦源码的变更波及整个系统大部分系统是高度耦源码的变更波及整个系统大部分系统是高度耦合的。
合的。
合的。
合的。
应用逻辑与用户界面交织在一起,因此无法复用应用逻辑与用户界面交织在一起,因此无法复用应用逻辑与用户界面交织在一起,因此无法复用应用逻辑与用户界面交织在一起,因此无法复用于其他不同界面或分布到其他处理节点之上于其他不同界面或分布到其他处理节点之上于其他不同界面或分布到其他处理节点之上于其他不同界面或分布到其他处理节
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 逻辑 架构 UML 详解