软件架构设计(业务架构、应用架构、数据架构、技术架构)

一、架构相关概念

1、系统

系统:由一群有关联的个体组成,根据某种规则运作,能完成个别原件不能独立完成的工作的群体。大的系统可以嵌套小系统,被嵌套的小系统往往称为大系统的子系统。

2、模块

模块是从逻辑上将系统分解,即分而治之,将复杂问题简单化。模块的颗粒度可大可小,可以是系统、子系统、某个服务、函数、类等。

3、架构

架构是指关键系统的顶层结构。

架构是经过系统性地思考,权衡利弊之后再现有资源约束下的最合理的决策,最终明确的系统股价:包括子系统、模块、组件意见他们之间的协作关系、约束规范、知道原则,并由它来指导团队中的每个人思想层面上的一致。

1)系统性思考的合理角色:比如技术选型、解决方案等。
2)明确的系统骨架:明确系统有哪些部分组成。
3)系统协作关系:各个组成部分如何协作来实现业务请求。
4)约束规范和指导原则:保证系统有序、搞笑、稳定运行。

二、架构分层和分类

在架构设计中,通常会涉及到四种不同类型的架构:业务架构、应用架构、技术架构和数据架构。

1、业务架构

业务架构是指在设计软件系统时,需要考虑到整个业务的层次结构,以及不同层次之间的关系和交互。在这种架构中,需要深入了解业务的本质和业务规则,并将其转化为可执行的软件系统。例如,一个电商平台的业务架构可能包括顾客、订单、库存、支付等模块,需要将它们有机地结合起来,以实现一个完整的电商平台。

2、应用架构

应用架构是指在软件系统中,将不同的应用程序组织在一起的方式。这种架构通常涉及到系统的模块化设计、组件化和微服务等方面。例如,一个电商平台的应用架构可能包括前台、后台、支付、物流等不同的应用程序,需要将它们有机地结合起来,以实现一个完整的电商平台。

3、技术架构

技术架构是指在软件系统中,采用哪些技术和架构模式来实现系统的需求。这种架构通常涉及到系统的安全、性能、可靠性、可扩展性等方面。例如,一个电商平台的技术架构可能包括使用云计算、容器化、分布式架构等技术,以实现系统的高可用、高并发等需求。

4、数据架构

数据架构是指在软件系统中,如何组织和管理数据的方式。这种架构通常涉及到数据的存储、处理、分析等方面。例如,一个电商平台的数据架构可能包括用户数据、订单数据、商品数据等,需要将它们组织起来,并进行适当的分析和处理,以实现更好的用户体验和更高的效率。

总之,程序员需要在架构设计中综合考虑业务、应用、技术和数据四个方面,以实现一个高效、稳定、安全的软件系统。

相关推荐
带娃的IT创业者2 天前
Emacs 31:一场静默而深刻的范式演进
编辑器·文本编辑器·开源软件·emacs·lisp·软件架构
Python私教3 天前
多个项目怎么安全合并?适配层、双轨验证与可回滚切换
python·软件架构·系统迁移
m0_749690234 天前
【寻迹校园 HarmonyOS NEXT 实战 06】共享权威词表:让发布表单与首页筛选使用同一套分类
harmonyos·arkts·数据建模·软件架构·arkui
m0_749690234 天前
【寻迹校园 HarmonyOS NEXT 实战 07】不引入全局状态库:用 dataRevision 实现跨页面刷新
harmonyos·arkts·软件架构·状态管理·arkui
红鼻子时代5 天前
从 @tool 到四层架构:一个查天气 Agent 的拆解
langchain·agent·软件架构
m0_749690236 天前
【寻迹校园 HarmonyOS NEXT 实战 02】多模块工程拆解:entry、HAR 与 HSP 如何分工
华为·harmonyos·arkts·软件架构·har·hsp
夜雨风云21 天前
幂等控制实践总结
软件架构·软件设计·稳定性·可靠性
在水一缸1 个月前
从“铁锁”到开源:John Deere和解协议背后的维修权革命与技术启示
开源·嵌入式系统·软件架构·固件安全·维修权
寰宇的行者3 个月前
软件架构风格之调用返回风格:主程序、面向对象、分层,到底怎么区分?
软考·面向对象·软件架构·分层架构·调用返回风格
何中应3 个月前
软件架构风格总结
架构·软考·软件架构