美文网首页
软件架构的基础知识

软件架构的基础知识

作者: guw2016 | 来源:发表于2017-01-15 20:34 被阅读0次

一、软件架构定义

软件架构(SoftWare Architectur)定义较多,简单来说SA可以看作是一系列有关软件整体结构与组成的抽象描述和建模,用于说明软件需求,为软件开发的全过程提供指导,为参与软件开发的各个团队和组织提供一致的沟通语言,贯穿于软件生命周期的全过程。

二、软件架构种类

软件架构按照种类可以分为逻辑架构、物理架构、系统架构。逻辑架构描述软件的功能组成,物理架构描述软件的各个功能组件如何在现实网络中的硬件上进行部署,系统架构描述性能、可靠性、可扩展性等非功能特征。

三、如何描述软件架构

使用图形方式最能直观表达各种思想,软件架构也不例外。用来表达软件架构的图形叫视图,包括业务用例视图、逻辑视图、实施视图、进程视图、配置视图等,使用图形方式对软件架构进行描述的语言中最为常用的是UML。

虽然图形表示简洁、易懂,且广泛使用,但以矩形框与线段等图形为基础的表达方法和方式,在术语和表达语义上存在着不规范和不准确的缺点。

架构描述语言ADL(Architecture Description Language)是一种形式化语言,在底层语义模型支持下,为软件架构提供了语法和语义框架,ADL还在研究和发展过程中。

四、软件架构模式

架构模式也叫架构风格,是描述某一特定领域中软件的结构和特征,提供特定领域内一种高层的软件复用模版,通过软件体系级的复用提高软件开发效率,降低软件开发风险。

MVC(Model View Controler)设计模式就是架构模式中的一种,其它还有面向对象风格、SOA风格等,各种风格之间还会交叉影响。

五、软件框架

软件框架是半成品,是针对特定领域中软件结构,从代码层面提取共性的部分,提供底层代码级的复用。

从软件框架和软件架构模式的定义可以看出,软件具有不同的架构模式,同一架构模式也可以由不同的框架来实现。SSH(Struts+Spring+Hibernate)就是实现MVC模式的一种轻量级软件框架。

六、微服务架构

在微服务概念提出后,SOA出现了新的解决方案,服务的构建也不再完全依靠ESB来完成。特别在Docker技术逐渐普及之后,轻量级微服务架构也在更多被运用在企业系统的构建中。

微服务也是一种软件架构模式,当然也有支持微服务开发的框架,例如SpringBoot就可以作为微服务开发框架。在此框架中可以用SpringBoot开发服务运行在Tomcat上,并用Docker进行封装;使用Jenkins进行服务部署;使用Zookeeper进行服务注册和发现;使用Node.js作为服务网关调用服务。    

相关文章

  • 2019年工作目标

    平衡好软件测试和软件开发的时间 软件测试: 1、继续梳理测试基础知识 2、结合实际项目,建立测试架构思维(学习架构...

  • 软件架构的基础知识

    一、软件架构定义 软件架构(SoftWare Architectur)定义较多,简单来说SA可以看作是一系列有关软...

  • 无标题文章

    软件体系架构 第一章 认识体系结构 软件架构的多个结构 软件的架构不是静止的 软件架构的概念 软件架构的产生 软件...

  • 程序员进阶之算法练习(四)

    前言 我认为的编程能力: 基础知识:数据库、操作系统、网络原理等; 编码能力:软件架构(MVVM、MVP)、设计模...

  • SpringCloud 微服务(架构篇)

    SpringCloud 微服务(架构篇) 软件架构的进化 什么是软件架构 软件架构是在软件的内部,经过 综合各种因...

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

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

  • 系统架构设计师学习笔记 第九章 软件架构设计

    第九章 软件架构设计 9.1 软件架构概述 9.1.1 软件架构的定义 定义1:软件或计算机系统的软件架构是该系统...

  • 程序员进阶之算法练习(一)

    前言 我对编程能力的认知包括三块: 基础知识:数据库、操作系统、网络原理等; 编码能力:软件架构(MVVM、MVP...

  • 软件测试文章收集

    1.软件测试理论概念 软件测试基础 软件测试基础知识大全(上篇) 软件测试基础知识大全(下篇) 软件测试基础学习 ...

  • 系统分析与设计作业8

    1、描述软件架构与框架之间的区别与联系 软件架构:软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象...

网友评论

      本文标题:软件架构的基础知识

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