zoukankan      html  css  js  c++  java
  • 细化架构

    “细化架构”与“概念架构”的区别

    1. 接口,在细化架构中占核心地位,概念架构不关心;
    2. 子系统,细化架构重视通过子系统和模块来分割整个系统,并且子系统往往有明确的接口;而概念架构中只有抽象的组件,这些组件没有接口。
    3. 交互机制,细化架构基于接口编程、消息机制或远程方法调用进行实在的交互,而概念架构的交互是“概念化”的,如“A层使用B层服务”

    不同涉众看待软件架构的视角是不同的

     细化架构的五视图方法

    1.逻辑架构:逻辑架构设计着重考虑功能需求,关系行为职责的划分,包括功能需求的和为了实现功能需求提供的辅助功能。

    一般而言逻辑架构设计应完成下列工作:

    (1).细化功能单元

    (2).发现同样机制

    (3).细化领域模型

    (4).确定子系统接口和交换机制

    2.开发架构:开发架构着重考虑开发期质量属性,比如:可扩展性,可重用性,可移植性,易理解性,易测试性等。开发架构主要关注点是软件模块的实际组织方式,包括:源程序包,配置文件,编译后的目标文件,第三方库等。

    一般而言开发架构设计应完成下列工作:

    (1).确定要开发或直接利用的程序包之间的依赖关系

    (2).确定采用的技术

    (3).确定采用的框架等

    3.数据架构:软件就是对数据的操作,所以数据在软件中非常重要,设计数据架构的时候主要使用ER图和数据流图。如果需要不同系统集成还要求对数据格式的转换,还有数据的复制和缓存。

    一般而言数据架构设计应完成的工作:

    (1).持久化数据存储方案

    (2).数据传递,数据复制,数据同步等策略

    4.运行架构:运行架构的设计主要考虑运行期质量属性,例如性能,可伸缩性,持续可用性等。运行架构关注进程,线程,对象等运行时概念,以及相关的并发,同步,通信等问题。工作流和多线程并发等用运行架构描述价值比较大。

    一般而言运行架构设计应完成的工作:

    (1).确定引入哪些进程与线程

    (2).确定主动对象,被动对象,以及控制流关系

    (3).处理相关问题:进程线程的创建,销毁,通信机制,资源征用等。

    (4).协议设计

    5.物理架构:物理架构的设计着重考虑“安装和部署需求”。物理视图描述运行软件的计算机,网络,硬件设施等情况,还包括如何将软件包部署到这些硬件资源上,以及他们运行时的配置情况。

    一般而言物理架构设计应完成的工作:

    (1).确定物理配置方案(可能是网络方案,也可能是单片机等的分布,或者二者兼有)。

    (2).确定如何将目标程序映射到物理节点

     不过五视图方法不一定每个项目都要实现这几种架构视图,根据项目的实际情况来使用相应的架构视图,还是那句老话不要为了设计而设计,应看项目的情况。

    逻辑视图设计是面向对象或结构化,目标是设计职责划分和职责间协作,例如分模块、分层、划分垂直功能子系统,为模块、层、子系统定义接口。
    开发视图设计是面向文件,目标是设计程序单元和程序单元组织,例如,开发语言选型、应用程序框架选择、编译依赖关系等。
    运行视图设计是面向控制流,目标是设计控制流和控制流组织,例如,多进程技术、多线程技术、中断服务程序等
    物理视图设计是面向节点,目标是设计物理节点和物理节点拓扑,例如,PC机、服务器、单片机的机型与拓扑连接等
    数据视图设计是面向表或文件,目标是设计数据存储格式和持久化设计,例如,关系数据库、实时数据库、文件等。


    参考文献:软件架构设计之细化架构设计方法   https://www.jianshu.com/p/25fb541ad421
  • 相关阅读:
    Hexo
    没有建立起壁垒就容易在竞争中失败(绑定形成利益共同体,稀缺性,早期靠非共识,中期靠执行力,后期靠垄断性)
    Delphi 的TStringBuilder防止服务器内存碎片化
    JSON与Delphi Object的互换
    Delphi调用爷爷类的方法(自己构建一个procedure of Object)
    Delphi的基于接口(IInterface)的多播监听器模式(观察者模式 )
    接口幂等性的实现方式
    Topshelf+Quartz3.0
    时间复杂度
    调优工具/技术网站
  • 原文地址:https://www.cnblogs.com/baixiaoli/p/12668281.html
Copyright © 2011-2022 走看看