-
软件架构
软件系统的架构将系统描述为计算组件及组件之间的交互(The architecture of a software system defines that system in terms of computational components and interactions among those components.)
“组件”可以指子系统、框架(Framework)、模块、类等不同粒度的软件单元,它们可以担负不同的计算职责。
软件架构包含的重要决策:
1) 软件系统的组织;
2) 选择组成系统的结构元素和它们之间的接口,以及当这些元素相互协作时所体现的行为;
3) 如何组合这些元素,使它们逐渐合成为更大的子系统;
4) 用于指导这个系统组织的架构风格:这些元素以及它们的接口、协作和组合;
-
分离关注点
好的架构设计必须使每个关注点互相分离。可以通过职责划分来分离关注点。面向对象设计的关键所在,就是职责的识别和分配。每个功能的完成,都是通过一系列职责组成的“协作链条”完成的。
架构模式和设计模式为特定上下文中重复出现的问题提供了通用的职责划分方案。
-
框架
框架是可以通过某种回调机制进行扩展的软件系统或子系统的半成品。
框架是软件,架构不是软件。
框架通过封装处理流程的控制逻辑,使它对开发者透明,来简化开发工作。这种封装也是框架和类库(class library)的区别之一。
框架可以分为应用框架、中间件框架、基础设施框架三大类。
还可以将框架分为:技术框架和业务框架。
-
软件产品线架构