1、构架由什么决定?
软件构件是技术、商业和社会因素共同作用的结果。
2、构架从哪里来?
主要包括:
-
系统涉众
- 管理者:成本低、人人都得干活
- 营销人员:特性突出、投放市场快,成本低、可与同类产品匹敌
- 终端用户:行为、性能、安全性、可靠性、易维护性
- 维护人员:可修改性强
- 客户:成本低,及时交付、不要频繁修改
-
开发组织
- 对现存构架的重用
- 对某个基础设施进行长期的商业投资以实现某些战略目标
- 开发组织本身的结构也会影响构架的形成
-
架构师的素质和经验
构架师先前的一些经验、教育、培训以及所接触到过的成功构架模式都会影响到他们对某种构架的选择。 -
技术环境
- 代表某个时代的构架师的普遍素质和经验
- 比如:在当今的技术环境下,如果构架师对信息系统的设计不考虑使用基于WEB的,面向对象的和支持中间件的方法是很难想象的
3、构架的反影响力
- 构架会影响开发组织结构
- 构架会影响开发组织的目标
- 构架会影响客户对下一个系统的要求
- 构建系统的过程丰富了整个开发团队的经验,从而将影响设计师对后继系统的设计
- 一些系统会影响并实际改变软件工程的环境,也就是系统开发人员学习或实践的技术环境
4、构架的含义
1、构架定义了软件元素
- 构架必须省略各元素中与其交互无关的某些信息
- 接口 VS. 内部实现
2、系统可能而且确实由多个结构组成
- 其中任何一个结构并不能与构架等同
- 结构的多重性是理解软件架构的关键
3、具有软件的每个计算系统都有一个软件构架
- 每个软件系统都可以看成由若干个元素及其相互联系构成
- 系统构架VS.构架描述
4、如果某个元素的行为可以从其他元素的角度观察到,这个元素的行为就是构架的内容
- 这种行为使各元素的交互成为可能,是构架的一部分
5、构架的存在与构架的优劣无关
5、构架的结构
1、举例
-
在一套房子中,我们可以观察到不同的结构
- 房间
- 电线
- 水管
- 通风
-
每一种结构都组成了关于房子的一个"视图"
- 为不同的人所使用
- 用来达到房子的某种质量属性
- 用来描述房子,进行规划
-
在软件中也存在类似的情况,一个结构是构架的一份"视图",构架在某个角度上的投影
2、三种主要的软件结构类型
- 模块结构
系统如何被划分为一些更小的代码单元 - 组件-连接器结构
系统如何被划分为一组有动态行为的元素(组件)和相互家户的元素(连接器)? - 分配结构
系统如何映射到非软件环境?