什么是软件构架:
业界有很多不同的声音,分为不同的派别
SEI给出的是(大意):该系统的一个或多个结构,他们由软件元素,这些元素的外部可见属性以及这些元素的关系组成。
内容有点绕,我个人的见解是,构架是由系统的元素以及元素的交互组成,什么是元素呢?它是对象 接口 函数 进程。也就是说构架就是他们的和他们的交互组成,
系统构架从不同的角度去审视,实施者---部署构架,DBA---数据库构架,开发者---静态/动态图 等等。。。。
在软件开发的过程中,由需求的核心需求决定构架,非核心来验证构架,但是非功能需求--质量属性也会决定构架,如客户要求并发,响应时间等。
3个具体结构:
1:模块分解结构
2:使用结构
3:进程结构
他们3个相互补充,共同来组建系统。
下面具体来说明:
- * 模块分解的目标:
A:每个模块应该足够简单,能够被充分的理解
B:模块是高内聚的,耦合要低
- * 调用关系
- 各个模块之间调用,方式很多,但是紧耦合是杜绝的,除非性能上要求很高,通常情况我们可以通过JMS,或者回调等方式,
- 接口注入,也是不错
- 进程结构