软件架构在软件开发过程中的作用1、软件架构的定义 软件架构(software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计
软件架构是一个系统的草图
软件架构描述的对象是直接构成系统的抽象组件
各个组件之间的连接则明确和相对细致地描述组件之间的通讯
在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象
在面对对象领域中,组件之间的连接通常用接口_(计算机科学)来实现
2、软件架构的种类根据我们关注的角度不同,可以将架构分成三种:逻辑架构软件系统中元件之间的关系,比如用户界面,数据库,外部系统接口,商业逻辑元件等等
物理架构软件元件是怎样放到硬件上的
比如一个分布于北京和上海的分布式系统的物理架构,图中所有的元件都是物理设备,包括网络分流器、代理服务器、WEB 服务器、应用服务器、报表服务器、整合服务器、存储服务器、主机等等
系统架构系统的非功能性特征,如可扩展性、可靠性、强壮性、灵活性、性能等
系统架构的设计要求架构师具备软件和硬件的功能和性能的过硬知识,这一工作无疑是架构设计工作中最为困难的工作
此外,从每一个角度上看,都可以看到架构的两要素:元件划分和设计决定
首先 ,一个软件系统中的元件首先是逻辑元件
这些逻辑元件如何放到硬件上,以及这些元件如何为整个系统的可扩展性、可靠性、强壮性、灵活性、性能等做出贡献,是非常重要的信息
其次 ,进行软件设计需要做出的决定中,必定会包括逻辑结构、物理结构,以及它们如何影响到系统的所有非功能性特征
这些决定中会有很多是一旦作出,就很难更改的
根据作者的经验,一个基于数据库的系统架构,有多少个数据表,就会有多少页的架构设计文档
比如一个中等的数据库应用系统通常含有一百个左右的数据表,这样的一个系统设计通常需要有一百页左右的架构设计文档
3、表现方法 软件架构是通过多种架构视图来表示的