首页 > 其他分享 >《架构师之路:软件架构之美》阅读二

《架构师之路:软件架构之美》阅读二

时间:2023-12-12 09:33:55浏览次数:25  
标签:软件系统 系统 之美 设计 软件架构 软件 组件 架构师

软件架构:

1.是一个系统的草图,是构建计算机软件实践的基础。

2.是用于指导大型软件系统各个方面的设计的一系列相关的抽象模式。

3.描述直接构成系统的抽象组件以及组件之间的通讯。

4.在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接口来实现。
软件架构是指在一定的设计原则基础上,从不同角度对组成系统的各部分进行搭配和安排,形成系统的多个结构而组成架构,它包括该系统的各个组件,组件的外部可见属性及组件之间的相互关系。组件的外部可见属性是指其他组件对该组件所做的假设。
在“软件构架简介”中,David GArlan 和 Mary Shaw 认为软件构架是有关如下问题的设计层次:“在计算的算法和数据结构之外,设计并确定系统整体结构成为了新的问题。

结构问题包括总体组织结构和全局控制结构;通信、同步和数据访问的协议;设计元素的功能分配;物理分布;设计元素的组成;定标与性能;备选设计的选择。”
但构架不仅是结构。IEEE Working Group on Architecture 把其定义为“系统在其环境中的最高层概念”。构架还包括“符合”系统完整性、经济约束条件、审美需求和样式。它并不仅注重对内部的考虑,而且还在系统的用户环境和开发环境中对系统进行整体考虑,即同时注重对外部的考虑。
一个软件架构师需要有广泛的软件理论知识和相应的经验来实施和管理软件产品的高级设计。软件架构师定义和设计软件的模块化,模块之间的交互,用户界面风格,对外接口方法,创新的设计特性,以及高层事物的对象操作、逻辑和流程。
根据我们关注的角度不同,可以将架构分成三种:

·逻辑架构。软件系统中元件之间的关系,比如用户界面,数据库,外部系统接口,商业逻辑元件,等等。

·物理架构。软件元件是怎样放到硬件上的。

 ·系统架构。系统的非功能性特征,如可扩展性、可靠性、强壮性、灵活性、性能等。

系统架构的设计要求架构师具备软件和硬件的功能和性能的过硬知识,这一工作无疑是架构设计工作中最为困难的工作。

此外,从每一个角度上看,都可以看到架构的两要素:元件划分和设计决定。 正如同软件本身有其要达到的目标一样,架构设计要达到的目标是什么呢?

一般而言,软件架构设计要达到如下的目标:   

·可靠性(Reliable)。软件系统对于用户的商业经营和管理来说极为重要,因此软件系统必须非常可靠。   

·安全行(Secure)。软件系统所承担的交易的商业价值极高,系统的安全性非常重要。

·可扩展性(SCAlable)。软件必须能够在用户的使用率、用户的数目增加很快的情况下,保持合理的性能。只有这样,才能适应用户的市场扩展得可能性。  

·可定制化(CuSTomizable)。同样的一套软件,可以根据客户群的不同和市场需求的变化进行调整。   

·可扩展性(Extensible)。在新技术出现的时候,一个软件系统应当允许导入新技术,从而对现有系统进行功能和性能的扩展    ·可维护性(MAIntainable)。软件系统的维护包括两方面,一是排除现有的错误,二是将新的软件需求反映到现有系统中去。一个易于维护的系统可以有效地降低技术支持的花费  ·客户体验(Customer Experience)。软件系统必须易于使用。  

·市场时机(Time to Market)。软件用户要面临同业竞争,软件提供商也要面临同业竞争。以最快的速度争夺市场先机非常重要。

标签:软件系统,系统,之美,设计,软件架构,软件,组件,架构师
From: https://www.cnblogs.com/liuxuefeng/p/17896062.html

相关文章

  • [代码之美] 简洁代码风格终极指南
    什么是“干净的代码”?原文地址(英文)什么是“干净的代码“可读优雅易于理解,符合单一职责原则易于理解,易于修改,易于维护按照测试策略进行测试写“干净的代码”的重要性解决问题更容易团队中思路的交流更清晰不需要过多的维护TheBestTipstoFollow1.使用描述性......
  • 架构师的知行合一(内容由AI的全文生成,满分100分我打99分)
    大型架构是怎么来的随着科技的不断发展,越来越多的企业和组织开始意识到数字化转型的重要性。为了更好地适应市场的变化,满足客户的需求,提高企业的竞争力,大型架构成为了企业和组织不可或缺的一部分。那么,大型架构到底是怎么来的呢?本文将为您深入剖析。一、业务需求推动架构演进......
  • 软考架构师(12)——嵌入式相关
    一:嵌入式系统概论嵌入式系统的特点包括:(1)系统专用性强。(2)软、硬件依赖性强。(3)系统实时性强。(4)处理器专用。(5)多种技术紧密结合。(6)系统透明性。(7)系统资源受限。实时系统的概念实时系统可以看成对外部事件及时响应的系统。现实世界中,并非所有的嵌入式系统都具有实时特性,所有的实......
  • 软考架构师(14)——面向对象方法
    0:基本概念面向对象方法包括:面向对象分析,面向对象设计,面向对象程序设计一:统一建模语言(UML)1:UML结构UML结构包括UML的基本构造块,支配这些构造块如何放在一起的规则(架构)和一些运用于整个UML的机制(1)构造块:事物:UML中的事物也称为建模元素,包括结构事物(structuralthings)、行为事物......
  • 软考架构师(15)——基于构件的开发
    一:构件与软件的重用1:软件重用软件重用(软件复用)是使用已有的软件产品(如设计、代码、文档等)来开发新的软件系统的过程。软件重用的形式大体可分为垂直式重用和水平式重用。水平式重用是重用不同应用领域中的软件元素,例如数据结构、排序算法、人机界面构件等。标准函数库是一种典......
  • 软考架构师(18)——安全性与保密性
    一:信息系统安全信息安全是一个很广泛的概念,涉及到计算机和网络系统的各个方面。从总体上来讲,信息安全有5个基本要素:(1)机密性:确保信息不暴露给未授权的实体或进程。(2)完整性:只有得到允许的人才能够修改数据,并能够判别数据是否已被篡改。(3)可用性:得到授权的实体在需要时可访问数据......
  • 软考架构师(16)——项目开发管理
    一:范围管理计划1:分类 产品范围项目范围  2:范围定义(1)范围边界。范围定义最重要的任务就是详细定义项目的范围边界,范围边界是应该做的工作和不需要进行的工作的分界线。项目小组应该把工作时间和资源放在范围边界之内的工作上。如果相反,把精力和时间放在项目范围边界之外......
  • 软考架构师(1)——计算机组成与体系结构
    一:计算机系统概述1:计算机发展历程2:结构(1)冯诺依曼机:由运算器,控制器,存储器,输入,输出五部分组成,以运算器为中心(2)计算机层次结构:应用程序-高级语言-汇编语言-操作系统-指令集架构层-微代码层-硬件逻辑层3:分类单指令单数据流:冯诺依曼体系结构单指令多数据流:向量处理器多指令单......
  • 软考架构师(2)——操作系统基础知识(上)
    一:操作系统引论1:操作系统的目标和作用操作系统的主要功能也正是针对四类资源进行有效的管理,及处理机管理,存储器管理,文件管理。设备管理。用户可通过以下三种方式使用计算机:一命令方式,二系统调用方式,三图形窗口方式联机命令接口(交互式命令接口):适用于分时或实时操作系统,cmd中的......
  • 【驱动】串口驱动分析(一)-软件架构
    区分不同的终端类型串行端口终端(/dev/ttySn)串行端口终端(SerialPortTerminal)是使用计算机串行端口连接的终端设备。计算机把每个串行端口都看作是一个字符设备。有段时间这些串行端口设备通常被称为终端设备,因为那时它的最大用途就是用来连接终端。这些串行端口所对应的设备......