架构学习 笔记 1
架构相关定义
框架与架构
框架
完成特定基本任务的软件组件规范,为了实现规范所需要基础功能的软件产品
架构
基础结构,创造基础结构的准则,以及对这些结构的描述
提炼

样例

MVC 即是框架又是架构
框架:软件规范,来实现产品
架构:按照 model view controller 来分层设计,一个单体,按照 sprinboot 来写的也算一个 mvc 架构
系统与子系统
系统
有关联的一群个体组成,按照某种规则运作,能完成个别元件不能独立完成的工作的群体
子系统
由一群有关联的个体所组成的系统,多半是更大系统的一部分
提炼

样例

模块与组件
模块
分开编写,允许协作,分离职责,包含程序和数据结构两部分
组件
可编程可重用自包含与语言无关的软件单元

样例

4R 架构
定义
Rank + Role + Relation + Rule
软件架构指软件系统的顶层结构,它定义了系统由哪些角色(Role)组成,角色之间的关系
(Relation)和运作规则(Rule)。

架构一词来源于建筑,那么软件架构的定义适用于建筑架构么?
不适用,建筑没有协作规则
关系就是看有没有连线,有没有输入输出
案例

应用

思维导图

Q&A
判断题】
系统能力等于多个个体能力之和? 大于
从逻辑角度拆分系统可以得到模块?对的
MySQL 可以是系统的一个模块,也可以是系统的一个组件?错误,是组件
软件架构和建筑架构没什么区别?错误,无交互规则
【思考题】
对比 4R 架构定义和维基百科架构的定义,主要差别是什么?
版权声明: 本文为 InfoQ 作者【felix徐】的原创文章。
原文链接:【http://xie.infoq.cn/article/7507b7aa79d802b42c6b372e5】。文章转载请联系作者。
评论