软件架构
软件复杂性与分解
处理软件复杂性的方法:分解。
i. 结构分解
ii. 开发周期分解
分解依据:重用代码。
分解级别(可重用代码大小来看):
i. 函数库
ii. oo内的重用方式,JDK中API
iii. 组件层面
iv. SOA服务级别重用
软件分解思路(代码层面):
分解可以使用AoP面向方面编程,例:事务管理、日志维护。
OSGI架构
以java为例,之前开发模型
问题:应用程序组件,仅使用lib包内局部代码,但工程(应用程序组件)迁移时,lib需要整包迁移
由此,产生OSGI,目标:将组件间的依赖关系描述清楚
功能:
i. 热部署
ii. 逻辑上独立的组件,物理上也独立
iii. eclipse、weblogic等,工具软件中使用
iv. B\S模式中未广泛应用(原因):
1. 浏览器限制
2. SSH等框架采用的模式限制(非OSGi)
今后软件的发展方向:
说明:服务内部使用OSGI模式实现,再使用SOA为上层应用层序提供服务。
4+1模型
软件工程架构师:4+1模型
软件架构目标:应用系统的架构详细的构造出来(而不仅是第一页中的OSGI)?
统一软件过程:RUP(UP)Rational unified process?Rational是一种软件
软件架构是什么?方向:水平、垂直
4+1?在下一篇文章中,将介绍4+1模型
4+1架构模型:
a) 逻辑模型(逻辑组件)
b) 物理模型(开发模型,实现)
c) 进程模型(代码间调用)
d) 部署模型
软件---(类比于)---建筑
i. 功能
ii. 结构
iii. 功能与结构的一致性