提示3-7:如果涉及许多外部系统,请按明确的标准聚合(集群)它们!
提示3-7:如果涉及许多外部系统,请按明确的标准聚合(集群)它们! #context #cluster #criteria 如果您的系统与许多外部系统交互,您可以根据明确的标准合并其中几个外部系统。你应该明确说明这些标准。这些标准可能包括系统: 共享公共或类似数据 在同一用例中或同时进行沟通 使用相同或类似的技术进行通信(例如按ftp-和WebService分类) 属于相同或类似的组织,例如:所有车库、保险、玻璃制造和税务顾问系统 有类似的领域或技术任务需要解决(所有 ...
提示 5-10:使用横切概念来描述或指定构建块中的相似之处!
提示 5-10:使用横切概念来描述或指定构建块中的相似之处! #building-block #concept #lean 简而言之:与其重复构建块子结构,不如将这些分解成一个横切概念。 译者注:将重复出现、或者共性较多的组件/模块进行抽象,形成一个横切概念。 麻烦的冗余请参阅以下构建框图:顶层(白盒X)由黑框A、B和D组成,它们在三个图表中进行细化。 所有这些改进看起来都非常相似——这太冗余了。 使用横切概念来简化构建块基于横切概念的一种更精简的方法避 ...
提示5-11:显示构建块视图的多个级别!
提示5-11:显示构建块视图的多个级别! #building-block #hierarchy 有时,为了理解和维护整个系统,需要来自构建块层次结构更深层次的细节。在这种情况下,从 level 1 到适当的细节,细化(指定或记录)构建块可能是有用的(尽管这肯定会带来很多工作,见下文)。 在这种情况下,请遵守提示5-12(一致细化)中显示的重要一致性规则。 请参阅下图了解(相当抽象的…)示例:(取自提示5-2(构建块层次结构))。 详细的构建块层次结构创造了巨大的努力 构建块 ...
提示5-12:持续不断地完善构建块!
提示5-12:持续不断地完善构建块! #building-block #hierarchy 如果您在层次结构的较低级别上记录或指定详细的构建块,这些(详细)构建块应始终具有较高级别的根。 每个详细的构建块都应有一个(不间断的)父母层次结构,一直到 level 1 。 不要跳过 LEVELS。 ...
提示5-13:解释将源代码映射到构建块!
提示5-13:解释将源代码映射到构建块! #building-block #source-code #essential #mapping 在某些(理想)情况下,构建块结构完全映射到源代码的文件、包或模块结构。但可悲的是,这并不总是如此。 考虑以下图表:在中心,您可以找到一个文件系统的摘录,其中包含几个.java和.php文件。在这个假设的目录列表中的左侧和右侧,您可以找到两种替代方案,如何将这些源映射到架构构建块: A_1由x.java和y.java、z.java的 ...
提示5-14:解释在哪里可以找到构建块的源代码!
提示5-14:解释在哪里可以找到构建块的源代码! #building-block #source-code #mapping 如果您将源代码映射到构建块并非微不足道,您的arc42文档应明确说明在哪里可以找到源代码。 如果您坚持使用提示5-15(与目录结构对齐的构建块),您只需记录或指定源代码存储库的根目录。进一步的详细信息将来自此根目录。 如果您的源代码在不同的存储库中管理(例如不同的git或subversion存储库),您应该在 level 1 构建块上添加这些存储 ...
提示5-16:根据编程语言的模块化结构绘制构建块!
提示5-16:根据编程语言的模块化结构绘制构建块! #building-block #source-code #mapping 如果您在设计或指定架构构建块时应用编程语言的模块化结构,您将获得源代码到架构的最佳映射。 例如,对于Java系统的开发,架构构建块(即 level 1 黑盒)应对应于Java软件包。 何时偏离这条规则 在历史上成长的系统中,如果代码(似乎)杂乱无章,偏离这条规则可能是有用的…… 如果您使用各种编程语言来实现其他有 内聚性的构建块(即您在Java ...
提示5-17:在创建构建块时,“内聚性”应是主要驱动因素!
提示5-17:在创建构建块时,“内聚性”应是主要驱动因素! #building-block #source-code #cohesion 内聚性是王道!内聚性是最基本和最经典的软件工程设计原则之一。它指的是任何架构构建块(组件、模块、子系统、软件包等)的元素属于一起的程度”。 内聚性是困难的如果这很简单,我们就不会写它了……什么属于一起将取决于你的观点——对于不同的利益相关者来说可能有所不同。 在您的系统内,内聚性应该有一致、同质的规则或原则。 属于一起的群体元素 元素归 ...
提示5-18:确保**每块源代码都可以在构建块视图中找到!
提示5-18:确保**每块源代码都可以在构建块视图中找到! #building-block #source-code 构建块视图应为每块源代码提供适当的位置。换句话说: 专门为该系统创建的每一行源代码都应有一个架构构建块。 您可以将基础设施工具(如特定构建系统、代码生成器或类似内容)推迟到第8节(交叉概念)-但至少在构建块视图的 level 1 上提及它们通常是一个好主意。 这是我们为文档提出的唯一要求完整性(因为否则实现完整性的成本过高-您不应该在其他任何事情上追求完整性 ...
提示5-19:在特殊情况下,在构建块视图中包含第三方软件!
提示5-19:在特殊情况下,在构建块视图中包含第三方软件! #building-block 通常,构建块视图应仅包含专门为系统创建的元素。 在某些情况下,将第三方软件(即中间件、数据库、库、框架、实用程序)包含在构建块视图中可能是有帮助的(即为了更好的理解性)。 下图显示了HTML语义分析器软件的白盒,其中(开源、第三方)HTML解析器对系统绝对至关重要。因此,它包含在构建块视图中(左下角) (根据提示5-20(指示第三方元素),它已用刻板印象library标记,以更好地将其 ...