【模块】:软件模块(Module)是一套一致且互相紧密关联的软件组织,它包含程序和数据结构两部分
【组件】:软件组件(Component)定义为自包含的、可编程的、可重用的、与语言无关的软件单元,软件组件可以很容易的地应用于组装应用程序。
系统从逻辑的角度来拆分后得到的单元就是“模块”,从物理的角度来拆分系统得到的单元就是“组件”;划分模块的主要目的是职责的分离,划分组件的主要目的是单元复用。
以一下最简单的网站学生信息管理系统为例,从逻辑 的角度可以拆分为“登录注册模块”、“个人信息模块”|、“个人成绩模块”;
从物理的角度来拆分,可为分:“Nginx”、“Web服务器”、“MySQL数据库”;
【软件框架】:Software Framework通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现 某个软件组件规范时,提供规范所要求之基础功能的软件产品。
1)框架是组件规范。如MVC、MVP、MVVM、J2EE等框架。
2)框架提供基础功能的产品。例如,Spring MVC是MVC的开发框架,Spring还提供了很多基础功能来帮助我们实现功能,包括注解@Controller、Spring security、Spring JPA等基础功能。
【软件架构】:Software Architecture 软件架构是指软件系统的“顶层结构”、创造这些基础结构的准则,以及对这些结构的描述。