美文网首页
软件架构之模块与组件

软件架构之模块与组件

作者: 等你足够强了再说吧 | 来源:发表于2021-04-06 14:56 被阅读0次

软件架构指软件系统的顶层结构,是为了解决软件系统复杂度带来的问题。

软件模块(Module)是一套一致而互相有紧密关连的软件组织。它分别包含了程序和数据结构两部分。现代软件开发往往利用模块作为合成的单位。模块的接口表达了由该模块提供的功能和调用它时所需的元素。模块是可能分开被编写的单位。这使它们可再用和允许人员同时协作、编写及研究不同的模块。

软件组件定义为自包含的、可编程的、可重用的、与语言无关的软件单元,软件组件可以很容易被用于组装应用程序中。

模块和组件都是系统的组成部分,只是从不同的角度拆分系统而已。

从逻辑的角度来拆分系统后,得到的单元就是“模块”;
从物理的角度来拆分系统后,得到的单元就是“组件”。
划分模块的主要目的是职责分离;
划分组件的主要目的是单元复用。

“组件”的英文 component 也可翻译成中文的“零件”一词。
“零件”更容易理解一些,“零件”是一个物理的概念,并且具备“独立且可替换”的特点。

以一个最简单的网站系统来为例。假设我们要做一个学生信息管理系统。
这个系统从逻辑的角度来拆分,可以分为“登录注册模块”“个人信息模块”“个人成绩模块”;
从物理的角度来拆分,可以拆分为 Nginx、Web 服务器、MySQL、Redis。

软件架构的出现有其历史必然性。
20 世纪 60 年代第一次软件危机【软件质量低下、项目无法如期完成、项目严重超支等】引出了“结构化编程”【“自顶向下、逐步细化、模块化”】,创造了“模块”概念,将复杂度分散;
20 世纪 80 年代第二次软件危机【扩展难的问题】引出了“面向对象编程”,创造了“对象”概念;
到了 20 世纪 90 年代“软件架构”开始流行,创造了“组件”概念。
我们可以看到,“模块”“对象”“组件”本质上都是对达到一定规模的软件进行拆分,差别只是在于随着软件的复杂度不断增加,拆分的粒度越来越粗,拆分的层次越来越高。

相关文章

  • 软件架构之模块与组件

    软件架构指软件系统的顶层结构,是为了解决软件系统复杂度带来的问题。 软件模块(Module)是一套一致而互相有紧密...

  • iOS-架构

    架构(Architecture)就是软件开发中的设计方案。 架构可大可小,可以是处理类与类之间的关系、模块与模块之...

  • django 框架介绍

    软件架构:软件框架是由其中的各个模块组成的,每个模块负责特定的功能,模块与模块之间相互协作来完成软件开发。软件架构...

  • DJango 简介

    软件架构 软件架构:是由其中的各个模块组成的,每个模块负责特定的功能,模块与模块之间相互协作来完成软件开发。 目的...

  • 「整洁架构」实战 MVC 架构重构到整洁架构

    软件架构介绍 什么是软件架构 我们先来看看维基百科对 软件架构 的定义, 软件架构是有关软件整体结构与组件的抽象描...

  • 架构浅谈

    架构是什么 软件架构指软件系统的顶层结构这个定义看似很简单,但包含的信息很丰富,基本上把系统、子系统、模块、组件、...

  • 学习总结0606

    一、软件架构的概念 软件架构是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。 软件架构整体...

  • 软件架构、开发框架和设计模式三者的关系

    概念 软件架构:架构又称软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。不仅显示...

  • 系统分析与设计homework8

    描述软件架构与框架之间的区别与联系软件架构是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。...

  • 架构与设计模式

    架构 架构(Architecture) 软件开发中的设计方案 类与类之间的关系、模块与模块之间的关系、客户端与服务...

网友评论

      本文标题:软件架构之模块与组件

      本文链接:https://www.haomeiwen.com/subject/qpwskltx.html