系统:把一群有关联的个体,根据一定的规则组合,得到一个新的个体。

eg. windows

eg. 卫星

eg. 人体

eg. ...


结构设计和架构设计区别 架构设计和系统设计_系统架构



结构设计和架构设计区别 架构设计和系统设计_结构设计和架构设计区别_02



结构设计和架构设计区别 架构设计和系统设计_软件工程师_03



结构设计和架构设计区别 架构设计和系统设计_系统架构_04

 

 


 

广义的理解,万物皆系统!另外,教育系统、行政系统等也可以称之为系统。元宇宙概念之所以会被认可,缘起于此吧

 

狭义的理解,有工程师的地方就有系统,软件工程师、硬件工程师、建筑工程师、航天工程师等

结构设计和架构设计区别 架构设计和系统设计_架构设计_05

软件工程师是最幸运也是最不配称之为工程师的一种,因为他们总有机会不停的修bug,代价极小

 

架构:描述系统的基础结构、各模块的组合规则

架构设计的目的是降低系统实现的复杂度,软件设计领域常有“业务架构”和“系统架构”之说,一个是逻辑视角,一个是物理视角

 

从逻辑视角,把系统做逻辑拆分后得到的各个单元,叫做“模块”。eg.  人体的呼吸系统、消化系统

从物理视角,把系统做物理拆分后得到的各个单元,叫做“组件”,更准确的理解应该是“零件”。eg. 人体的心、肝、脾、胃、肺

 

系统设计的顺序,往往是先业务架构后系统架构。业务架构不必拘泥于现有技术,现有技术都是过往的优秀业务架构中沉淀下来的。

eg. 过去十年大爆发的大数据&云计算

结构设计和架构设计区别 架构设计和系统设计_架构设计_06

 

一个系统的实现,往往可以有多种架构,系统架构的关键点一是设计二是取舍!

好的架构师,普遍具备如下品质:

结构设计和架构设计区别 架构设计和系统设计_软件工程师_07

 

架构设计的三个原则:

  1. 简单原则,越简单的系统越稳定越易维护。
  2. 合适原则,技术和业务不该背离,盲目追求业界领先毫无意义。
  3. 演化原则,需求、环境不会一成不变,好的架构一定是有进化能力的,切忌贪大求全过度设计。

 

架构设计的常规步骤,以设计一辆海陆空三栖交通工具为例

  1. 需求分析,确定研究对象(交通工具)、用例场景(能在地上跑,能在水里游,能在天上飞)
  2. 概要设计,确定系统边界(需要飞多高,需要潜多深),明晰系统功能(动力系统、防水性、环境感知、模式切换)
  3. 详细设计,确定各模块详细的实现方式、上下游依赖等(南孚电池做动力、遥控器辅助感知环境、策略模式管理水—陆、水—空、陆—空等切换过程)

 

架构设计的基本思路(主要是详细设计阶段)

// 待完善