软件工程----4+1架构模型

架构视图是对从某一视角或某一点上看到的系统所做的简化描述,描述中涵盖了系统的某一特定方面,而省略了与此方面无关的实体。

架构要涵盖的内容和决策太多,采用分而治之的方法从不同视角分别设计;同时,也为软件架构的理解、交流和归档提供方便。

为了最终处理大型的、富有挑战性的架构,该模型包含五个主要的视图:

逻辑视图:逻辑视图用来描述系统的功能需求,即在为用户提供服务方面系统所应该提供的功能。在逻辑视图中,系统分解成一系列的功能抽象、功能分解与功能分析,这些主要来自问题域。在面对对象技术中,表现为对象或对象类的形式,采用抽象、封装和继承的原理。用对象模型来代表逻辑视图,可以用类图来描述逻辑视图。借助于类图和类模版的手段,类图用来显示一个类的集合和它们的逻辑关系:关联、使用、组合、继承等。相似的类可以划分成类集合。类模版关注于单个类,它们强调主要的类操作,并且识别关键的对象特征。

逻辑视图的表示:

构件:类、类服务、参数化类、类层次

连接件:关联、包含聚集、使用、继承、实例化

逻辑视图的风格采用面向对象的风格,其主要的设计准则是视图在整个系统中保持单一的、一致的对象模型,避免就每个场合或过程产生草率的类和机制的技术说明。

过程视图:又称进程视图、处理视图。

过程架构考虑一些非功能性的需求,如性能和可用性。它解决并发性、分布性、系统完整性、容错性的问题,以及逻辑视图的主要抽象如何与进程结构结合在一起,即定义逻辑视图中的各个类的具体操作是在哪一个线程中被执行。过程视图侧重系统的运行特性。服务于系统集成人员。

构件:进程、简化进程、循环进程

连接件:消息、远程过程调用RPC、双向消息、事件广播

过程视图:关注进程、线程、对象等运行时概念,以及相关的并发、同步和通信等问题。

物理视图:主要描述硬件配置。服务于系统工程人员,解决系统的拓扑结构、系统安装、通信等问题。主要考虑如何把软件映射到硬件上,也要考虑系统性能、规模、可靠性等。物理架构主要关注系统非功能性需求,如可用性、可靠性、性能和可伸缩性

物理视图表示法

构件:处理器、计算机、其他设备

连接件:通信协议等

开发视图:描述了在开发环境中软件的静态组织结构,即关注软件开发环境下实际模块的组织,服务于软件编程人员。

系统的开发结构用模块和子系统图来表达,显示了输出和输入关系,完整的开发架构只有当所有软件元素被识别后才能加以描述。但是,可以列出控制开发架构的规则:分块、分组和可见性。

开发视图的风格通常是层次结构,每一层为上一层提供良好定义的接口,层次越低,通用性越好。

开发视图表示方法

构件:模块、子系统、层

连接件:参照相关性、模块/过程调用。

用例视图(场景)

用于刻画构件之间的相互关系,将四个视图有机地联系起来。可以描述一个特定的视图内的构件关系,也可以描述不同视图间的构件关系

四种视图的元素通过一组重要场景进行无缝协同工作,我们为场景描述相应的脚本。子啊某种意义上场景式最重要的需求抽象,它们的设计使用对象场景图和对象交互图。

场景式其他视图的冗余,但它起到了两个作用:

作为一项驱动因此来发现架构设计过程中的架构元素

作为架构设计结束后的一项验证和功能说明,即以视图的角度来说明,又作为架构原型测试的出发点。

作为一项驱动因素,源于迭代开发中有场景驱动方法。场景驱动方法认为系统大多数关键的功能以场景的形式被捕获。

UML中的图和各视图的对应关系

场景视图:用例图

逻辑视图:类图和对象图

开发视图:类图和组件图

进程视图:顺序图、协作图、状态图、活动图、组件图

部署视图:部署图

相关推荐
夏旭泽1 天前
软件工程-软件测试
软件工程
weixin_535854221 天前
优博讯,蓝禾,三七互娱,顺丰,oppo,游卡,汤臣倍健,康冠科技,作业帮,高途教育25届春招内推
java·嵌入式硬件·算法·硬件工程·软件工程
shinelord明2 天前
【再谈设计模式】备忘录模式~对象状态的守护者
数据结构·算法·设计模式·软件工程
开开心心就好2 天前
免费轻巧多功能 PDF 处理工具:转换、压缩、提取一应俱全
java·人工智能·windows·python·pdf·软件工程·软件需求
charlie1145141914 天前
深入讨论C语言的可能抽象:部分对设计模式的思考
c语言·学习·设计模式·软件工程
Dragonlongbo4 天前
软件工程----统一过程模型RUP
软件工程
飞云不坠4 天前
软件工程复试专业课-测试
软件工程
愚戏师5 天前
软件工程应试复习(考试折磨版)
软件工程
FeiCat Henry5 天前
KGG转MP3工具|非KGM文件|解密音频
科技·算法·音视频·软件工程·视频编解码