当前位置: 首页 > 科技观察

软件架构的视角、观点和利益相关者

时间:2023-03-19 16:53:09 科技观察

系统必然是复杂的。如何清晰地描述一个系统是架构工作的难点。架构的观点有两种,虽然各有侧重,但都指向同一个目标,都是软件架构的基本方法。需要注意的是,这两种架构观点对视图的定义和理解略有不同,观点应该是视图。“4+1”视图模型面临着复杂且不确定的业务需求。为了避免盲人感觉图像的情况,使用视图和视点的方法更为有效。PhilippeKruchten在他的文章《Architectural Blueprints—The “4+1” ViewModel of Software Architecture》中详细介绍了“4+1”视图模型。在这个模型中,视图是指从不同利益相关者的角度描述系统,他们可以是最终用户、开发人员或项目经理。因此,四个视图是逻辑视图、开发视图、过程视图和物理视图。视图的另一个“+1”是选择一些用例和场景来描述架构。开发视图:开发视图从程序员和软件管理人员的角度描述系统。此视图也称为实现视图,通常使用UML组件图来描述系统组成。逻辑视图:逻辑视图主要描述系统为最终用户提供的功能。一般对应UML工具的类图、状态图等。物理视图:物理视图是从系统工程师的角度来描述系统的。该视图关注软件组件在物理层的拓扑结构和组件之间的物理连接,通常称为部署视图。在UML工具中,它被称为部署图。流程视图:流程视图处理系统的动态方面,例如系统的流程如何相互通信以及它们的运行时行为,例如并发性、分布、集成、性能、可扩展性等。UML工具表示通过活动图。场景视图:场景视图使用一些用例或场景来描述流程和对象之间的交互,用于验证架构设计,也是测试架构原型的起点。使用观点和观点与利益相关者合作使用观点和观点与利益相关者合作的想法在NickRozanski和EoinWoods的书《软件系统架构:使用视点和视角与利益相关者合作(原书第2版)》中得到了阐述。如果说有什么书可以作为软件体系结构的教科书的话,那就是这本书了。什么是建筑?为什么架构在工作中至关重要?您如何确定架构的利益相关者及其关注点?您如何在实施和需求之间找到平衡点?你如何向利益相关者传达你的架构并证明你的架构满足如何在不牺牲性能和可靠性的情况下专注于架构的关键点?作为一名建筑师,您最重要的活动是什么?这些问题都将在书中得到解答。书中的三个重要概念是观点、观点和利益相关者。利益相关者是所有构建系统的人,这些人的需求复杂多样,相互重叠甚至相互冲突。架构师的主要工作是知道如何与利益相关者合作并创建满足每个人需求的架构。视点(perspective)是一种结构化的方式,用于描述架构并根据利益相关者的关注点定义架构。视图是观点的补充,它们的主要作用是分割关注点,但主要关注跨结构的质量属性而不是结构本身。利益相关者架构的利益相关者不仅是使用软件的人,还包括对软件系统的构建、测试、运维等感兴趣的人。系统架构中的涉众是对系统的实现感兴趣的个人、团队、组织或类别。如果一个建筑师在设计的早期错过了一个利益相关者,那么例如,他将在未来付出代价。架构还需要在不同的利益相关者和相互冲突的需求之间做出可靠和合理的选择。需要注意的是,架构师本身也是利益相关者,必须完全代表自己说话。架构师必须确保在整个董事会中有足够的利益相关者代表,包括非技术利益相关者(如收购方和用户)和以技术为中心的利益相关者(如开发人员、系统管理员和维护人员)。按角色列出利益相关者及其关注点如下:观点在系统设计过程中,有一些问题是无法避免的:架构的主要功能组件是什么?系统中的组件如何交互?组件如何与外部交互?系统的信息是如何管理、存储和表示的?为了支持系统的这些功能,需要什么样的硬件和软件组件?需要提供什么样的运维功能?需要提供什么样的开发、测试、支持、培训环境?这么多问题,如何梳理线索?复杂的系统架构。与“4+1”视图模型一样,视点采用结构化的多视图方法来解决上述一系列问题。不可能在所有利益相关者都能理解并对其有价值的单一综合模型中捕捉复杂系统的功能特征和质量属性。在“4+1”视图模型之后,IEEE标准1471以一种标准的方式推广了这种架构方法。视点是用于构建一种类型的视图的模式、模板和约定的集合。它定义了利益相关者,其关注点反映在观点中,以及用于构建其观点的指南、原则和模板模型。以下是一些观点及其定义,供参考。观点的方法本质是做减法,划分关注的焦点,突破单点,而观点是做加法,达到一加一大于二的效果。这就是建筑的品质属性!由于用户对质量属性的漠视,架构往往成为项目管理铁三角中牺牲和放弃的对象。在软件实现过程中,质量属性往往作为非功能需求而被抛弃。而这通常是架构失败的根源。体系结构视角是活动、策略和指南的集合,用于确保系统展示特定的一组相关质量属性,这些属性需要跨系统的多个体系结构视图进行考虑。因此,视图期望提供了一个质量属性框架,促使架构师重新审视架构中每个视点的设计和实现。即在视点中应用视图。部分观点及其定义供参考:【本文为专栏作者诗诗原创文章,转载请通过作者微信获取授权公众号布蒂安斯(butianys)】点此查看作者更多好文