2.3 体系结构
UML用户指南(第2版.修订版)
可视化、详述、构造和文档化一个软件密集型系统,要求从几个角度去观察系统。各种人员——最终用户、分析人员、开发人员、系统集成人员、测试人员、技术资料作者和项目管理者——各自带着项目的不同日程,在项目的生命周期内各自在不同的时间、以不同的方式来看系统。系统体系结构或许是最重要的制品,它可以驾驭不同的视点,并在整个项目的生命周期内控制对系统的迭代和增量式开发。
【第1章讨论需要从不同的角度观察复杂系统。】
体系结构是一组有关下述内容的重要决策:
软件系统的组织;
对组成系统的结构元素及其接口的选择;
像元素间的协作所描述的那样的行为;
将这些结构元素和行为元素组合到逐步增大的子系统中;
指导这种组织的体系结构风格:静态和动态元素以及它们的接口、协作和组成。
软件体系结构不仅关心结构和行为,而且还关心用法、功能、性能、弹性、复用、可理解性、经济与技术约束及其折中,以及审美的考虑。
如图2-23所示,最好用5个互连的视图来描述软件密集型系统的体系结构。每一个视图是在一个特定的方面对系统的组织和结构进行的投影。
【第32章讨论对系统的体系结构建模。】
系统的用况视图(use case view)由描述可被最终用户、分析人员和测试人员看到的系统行为的用况组成。用况视图实际上没有描述软件系统的组织,而是描述了形成系统体系结构的动力。在UML中,该视图的静态方面由用况图表现;动态方面由交互图、状态图和活动图表现。
系统的设计视图(design view)包含了类、接口和协作,它们形成了问题及其解决方案的词汇。这种视图主要支持系统的功能需求,即系统应该提供给最终用户的服务。在UML中,该视图的静态方面由类图和对象图表现;动态方面由交互图、状态图和活动图表现。类的内部结构图特别有用。
系统的交互视图(interaction view)展示了系统的不同部分之间的控制流,包括可能的并发和同步机制。该视图主要针对性能、可伸缩性和系统的吞吐量。在UML中,对该视图的静态方面和动态方面的表现与设计视图相同,但着重于控制系统的主动类和在它们之间流动的消息。
系统的实现视图(implementation view)包含了用于装配与发布物理系统的制品。这种视图主要针对系统发布的配置管理,它由一些独立的文件组成;这些文件可以用各种方法装配,以产生运行系统。它也关注从逻辑的类和构件到物理制品的映射。在UML中,该视图的静态方面由构件图表现,动态方面由交互图、状态图和活动图表现。
系统的部署视图(deployment view)包含了形成系统硬件拓扑结构的结点(系统在其上运行)。这种视图主要描述组成物理系统的部件的分布、交付和安装。在UML中,该视图的静态方面由部署图表现,动态方面由交互图、状态图和活动图表现。
这5种视图中的每一种都可单独使用,使不同的人员能专注于他们最为关心的体系结构问题。这5种视图也会相互作用,如部署视图中的结点拥有实现视图的构件,而这些构件又表示了设计视图和交互视图中的类、接口、协作以及主动类的物理实现。UML允许表达这5种视图中的任何一种。
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。