系统泛指一群有**关联**的个体组成,根据某种**规则**运作,能完成个别元件不能单独完成
的工作群体。
其实子系统也是由一群有关联的个体所组成的系统,多半是更大系统中的一部分
软件模块是一套一致而互相有紧密关联的软件组织。它分别包含了程序和数据结构两个部分。
现代软件开发往往利用模块作为合成的单位。模块的接口表达了由该模块提供的功能和调用
它时所需的元素。模块是可能分开被编写的单位。这使得它们可再用和允许人员同时协作、
编写及研究不同的模块。
软件组件定义为可包含的、可编程的、可重用的、与语言无关的软件单元,软件组件可以很容易被用于组装应用程序中
从逻辑的角度拆分系统后,得到的单元就是“模块“,划分模块的目的是职责分离
从物理的角度来拆分系统后,得到的单元就是“组件“,划分组件的目的是单元复用
软件框架通常指的是为了实现某个业界标准,或者完成特定基本任务的软件组件规范(MVC、
J2EE),也指为了实现某个软件组件规范时,提供规范所要求的基础功能的软件产品(
Spring MVC是MVC的开放框架,除了满足MVC的规范,Spring提供了很多功能帮助我们
实现功能)
软件架构指软件系统的“基础结构“,创造这些基础结构的准则,以及对这些结构的描述。
框架关注的是“规范“,架构关注的是“结构“
软件架构是指软件系统的顶层结构,这个概念将系统、子系统、模块、组件等概念都串起来了,首先,系统是一群关联个体组成,这些个体可以是子系统,模块,组件等,架构需要明确系统包含哪些个体,其次,系统重的个体需要根据某种规则运作,架构需要明确个体运作和协作的规则。
架构是顶层设计,框架是面向编程或配置的半成品,组件是从技术的维度上的复用,模块是从业务维度上的划分,系统是相互协同可运行的实体