软件构架 是什么,你是怎么理解软件架构的?
二派观点:
组成派:
软件系统的构架将系统描述为计算组件与组件的交互。计算组件是泛指,可以进一步细分为,处理组件、数据组件、连接组件等 总之。 组件可以是子系统、框架、模块、类等不同粒度的软件单元。它们可以担负不同的职责。
决策派:
RUP中对软件架构的定义
软件架构包含了关于以下问题的重要决策:
- 软件系统的组织
- 选择组成系统的结构元素和它们之间的接口,以及当这些元素相互协作时所体现的行为
- 如何组合这些元素,使它们逐渐合成为更大的子系统
- 用于指导这个系统组织的架构风格
可以看出来 软件架构是围绕 组件 和 决策 二个视角展开的
软件架构关注分割与交互
以MVC为例,包括三个组件: Model、View、Controller
View创建一个Controller,Controller根据View的用户交互调用Model相关的服务、Model会将自身的改变通知View,View读取Model更新后的内容。
软件架构是一系列有层次性的决策
架构方案事例:
用户需要一个甘特图显示项目工期的需求,
思考: 信息查看方式:列表式、图形式;至少二种。
思考甘特图问题,是自行开发还是利用第三SDK。用户不关心你用什么技术,只关心需求有没有满足。
短期内决定用第三方可能并不是最优的,基于以上分析、架构师会决定 采用第三方SDK,但是会自主定义接口将SDK隔离.