软件体系结构,也就是软件架构。提到架构,我首先想到的是建筑行业的“架构”。在我们要盖一栋建筑物之前,会有专业的设计师设计图纸,分析建筑物的架构,保证建筑物的安全性。在软件行业也是如此,当我们开发一个软件之前,也需要有专业人士对软件进行分析,做出架构,这就是架构师。

要了解软件架构,首先得明白什么事架构。

架构就是:

  1. 根据要解决的问题,对目标系统的边界进行界定
  2. 并对目标系统按某个原则进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间。
  3. 并对这些切分出来的部分,设立沟通机制。
  4. 根据3,使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作。

认识概念是理解架构的基础。概念是我们学习一切事物的开始。对于一个新事物,首先我们应该在脑海中有个相关的概念,这样才能更好的理解。要通过概念,发现概念背后的问题,进而才能够认识目标领域所需要解决的问题。

软件开发通常都是一个团队,团队中每个人都有自己的工作和任务,也有自己需要解决的问题。这时就需要我们能够找到问题的主体。当我们明白了问题的主体,我们才有可能真正的认识到问题是什么才能明确问题的边界。如果我们每个人都只是致力于自己的工作,那么最后就有可能会造成自己的工作不但没有完成而且会有更多问题。这就需要我们团队之间的沟通,需要架构师明确:这是谁的问题以及有什么问题。

每一个软件都需要多个人来完成,这就需要进行架构切分。每个人的精力都是有限的,都有自己擅长的部分。所以就需要根据每个人不同的特点和特长来进行架构切分。但是在切分时要保证利益相关人的权利和义务对等。

在了解了架构,就需要了解什么是软件了。现在是信息的时代,人们越来越愿意把事情交给计算机来做。这样就会需要越来越多的软件来满足人们的需求,需要大量的软件工程师,从而也有了很多不同的相关职位,比如架构师、测试师等。由于软件工程师的负载太重,就把软件开发进行拆分,这就是架构。从而有了软件架构。

软件是需要在计算机的硬件中运行起来的,所以在开发软件时就需要解决业务问题和计算机问题。要考虑到如何让软件在硬件中运行,如何能使软件更好的运行。

软件架构需要软件的组织架构和流程来保障。架构本身就是在不断增大,工作内容不断拆分,工作人员不断增加。

软件架构包括了代码架构,以及承载代码运行的硬件部署架构。其中最重要的还是代码架构。因为软件是对现实生活的虚拟化,所以我们在开发软件的过程中,要有严格的业务逻辑。

软件体系结构是规范软件开发的基本架构,可以便于开发者和用户的沟通,模块化、层次化设计,有利于减少返工,提高效率,便于系统开发前、后期的筹备和服务。