目前的工作还未接触到架构设计层面,但是希望从整体角度去把握公司的产品设计、开发流程。
因此,先从本文档入手,对基本概念有一些了解。本文内容主要是按照自己的理解、整理出来的,可能有一些描述不准确设置错误之处。
1 架构基本概念
1.1 什么是架构
1.2 常见名词解释
1.3.1 架构与框架
架构:软件系统的顶层结构。系统由关联个体有机结合,架构需要明确系统包含哪些个体;系统中的个体需要按照某种规则运行,架构需要明确个体运行以及协作规则;顶层结构是为了区分系统架构与子系统架构
框架:是一种组件规范(MVC就是一种规范),能够提供基础功能的产品(Spring MVC是MVC的开发框架,满足MVC规范外还提供了注解,安全,数据库连接等功能)
1.3.2 系统与子系统
系统:由各个有关联的个体组成,按照某种规则运行,解决单个个体不能解决的问题。
子系统:由有关联的个体组成,是更大子系统的一部分。
关键词:关联(个体间有机结合),规则(个体按照指定的规则运行)、能力(系统拥有个体不具备的能力)
1.3.3 组件与模块
组件:逻辑角度拆分系统,得到的单元就是组件,其目的是单元复用
模块:物理角度拆分系统,得到的单元就是模块,其目的是职责分离
组件与模块是系统的组成部分,只是从不同角度拆分系统。以学生管理系统为例,从逻辑角度拆分,可以分成“登录模块”,“个人成绩模块”等等;从物理角度拆分,可以分成“Mysql”,“Web服务器”等。